Pesanan Tugasan dalam Peta Go
Memandangkan kod Go berikut:
package main import "fmt" type Vertex struct { Lat, Long float64 } var m map[string]Vertex func main() { m = make(map[string]Vertex) m["Bell Labs"] = Vertex{ 40.68433, 74.39967, } m["test"] = Vertex{ 12.0, 100, } fmt.Println(m["Bell Labs"]) fmt.Println(m) }
Ia menghasilkan:
{40.68433 74.39967} map[Bell Labs:{40.68433 74.39967} test:{12 100}]
Mengubah suai perisytiharan puncak ujian dengan menggerakkan "}" kanan 4 ruang, seperti berikut:
m["test"] = Vertex{ 12.0, 100, }
Menukar output kepada:
{40.68433 74.39967} map[test:{12 100} Bell Labs:{40.68433 74.39967}]
Penjelasan:
Peta "pesanan" dalam Go bergantung pada rawak fungsi hash yang digunakan untuk menghalang serangan penafian perkhidmatan. Mengikut penjejak isu Go (http://code.google.com/p/go/issues/detail?id=2630), susunan peta tidak dijamin mengikut spesifikasi.
Mengikut spesifikasi , peta ialah kumpulan unsur tidak tertib dengan kunci unik. Pelaksanaan masa hadapan boleh mengubah susunan peta tanpa mengubahnya dalam kod anda. Oleh itu, bergantung pada susunan peta tertentu bukanlah amalan yang disyorkan dalam Go.
Atas ialah kandungan terperinci Adakah Perintah Lelaran Go Map Bergantung pada Urutan Sisipan Kunci?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!