Rumah > pembangunan bahagian belakang > Golang > Adakah Perintah Lelaran Go Map Bergantung pada Urutan Sisipan Kunci?

Adakah Perintah Lelaran Go Map Bergantung pada Urutan Sisipan Kunci?

Barbara Streisand
Lepaskan: 2024-11-22 09:11:11
asal
480 orang telah melayarinya

Does Go Map Iteration Order Depend on Key Insertion Order?

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)
}
Salin selepas log masuk

Ia menghasilkan:

{40.68433 74.39967}

map[Bell Labs:{40.68433 74.39967} test:{12 100}]
Salin selepas log masuk

Mengubah suai perisytiharan puncak ujian dengan menggerakkan "}" kanan 4 ruang, seperti berikut:

m["test"] = Vertex{
    12.0, 100,
}
Salin selepas log masuk

Menukar output kepada:

{40.68433 74.39967}

map[test:{12 100} Bell Labs:{40.68433 74.39967}]
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan