3 回答

TA貢獻1794條經驗 獲得超8個贊
你不能含蓄地。的基礎數據結構是地圖,則該命令不被保證。您需要采取額外的步驟。
然而,Go maps in action展示了一種以排序方式訪問地圖的簡單方法。您創建一個鍵切片,對該切片進行排序并通過迭代排序切片中的鍵來訪問映射值。
對于您的示例,它看起來像這樣
package main
import (
"crypto/md5"
"fmt"
"io"
"sort"
)
func main() {
// Which is the same structure as url.Values()
var m map[string][]string = make(map[string][]string)
m["c"] = []string{"19.95"}
m["b"] = []string{"foo", "bar", "baz"}
m["a"] = []string{"1"}
// Note that playground is deterministic, so the order should be preserved there
// However, you can not rely on that in the real world
fmt.Println("Unsorted")
for k, v := range m {
fmt.Println("Key:", k, "Value:", v)
}
var keys []string
for k := range m {
keys = append(keys, k)
}
sort.Strings(keys)
hash := md5.New()
fmt.Println("\nSorted")
for _, k := range keys {
fmt.Println("Key:", k, "Value:", m[k])
// Add Key/Value pair to hash
fmt.Printf("\tAdding KEY '%s' to hash\n", k)
io.WriteString(hash, k)
for _, v := range m[k] {
fmt.Printf("\tAdding VALUE '%s' to hash\n", v)
io.WriteString(hash, v)
}
}
fmt.Printf("\nHash: %x", hash.Sum(nil))
}

TA貢獻1839條經驗 獲得超15個贊
您可以閱讀請求正文并檢查表單參數。它們將以與請求中相同的順序出現(希望您的客戶端應用程序也知道此順序保留)
您可以創建一個讀取器來讀取請求正文。一個示例代碼如下所示
body, err := ioutil.ReadAll(r.Body)
if err != nil {
fmt.Println("Reading Error ")
return
}
fmt.Println("Req Body : ", string(body))
注意:注意內容類型
- 3 回答
- 0 關注
- 265 瀏覽
添加回答
舉報