Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah nilai dalam antara muka Peta Golang berubah?

Bagaimanakah nilai dalam antara muka Peta Golang berubah?

WBOY
WBOYke hadapan
2024-02-09 21:00:19952semak imbas

Golang Map 接口中的值如何变化

Bagaimanakah nilai dalam antara muka Peta Golang berubah? Ini adalah soalan yang mengelirukan ramai pembangun Golang. Dalam bahasa Go, peta ialah struktur data yang sangat penting, yang menyimpan data dalam bentuk pasangan nilai kunci. Walau bagaimanapun, apabila menggunakan peta, kita perlu memberi perhatian kepada beberapa butiran, terutamanya apabila berurusan dengan perubahan nilai. Jadi, mari kita lihat dengan lebih dekat bagaimana nilai berubah dalam antara muka Peta Golang.

Kandungan soalan

Ini adalah asas kod - https://go.dev/play/p/bedouz9qhag

Output -

map[something:map[acm:34.12 age:12 dune:dune]]

Apakah kesan perubahan nilai pembolehubah t terhadap x?

package main

import "fmt"

    func main() {
        x: = make(map[string] interface {}, 10)
        x["something"] = map[string] interface {} {
            "dune": "dune", "age": 12
        }
    
        t: = x["something"].(map[string] interface {})
        t["ACM"] = 34.12
       

 fmt.Println(x)
}

Penyelesaian

Jenis yang dipetakan ialah jenis rujukan, seperti penunjuk atau kepingan,

Jadi baris ini

t := x["something"].(map[string]interface{}) t["ACM"] = 34.12 fmt.Println(x) }

hanyalah salinan cetek untuk anda dalam x 变量中创建的现有地图创建 alias supaya mereka menunjuk ke alamat memori yang sama di mana peta asal yang anda buat.

Lihat rujukan -https://www.php.cn/link/0bf31d0d702fcac8c8e07912f3347c31

Atas ialah kandungan terperinci Bagaimanakah nilai dalam antara muka Peta Golang berubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam