Rumah >pembangunan bahagian belakang >Golang >Tetapkan nilai peta1 dan peta2 melalui penunjuk pemantul

Tetapkan nilai peta1 dan peta2 melalui penunjuk pemantul

PHPz
PHPzke hadapan
2024-02-09 18:50:08527semak imbas

Tetapkan nilai peta1 dan peta2 melalui penunjuk pemantul

Editor PHP Youzi di sini untuk memperkenalkan kepada anda kaedah menggunakan penunjuk pemantul untuk menetapkan nilai peta1 dan peta2. Melalui penuding reflektor, kita boleh mengakses dan mengubah suai sifat dan kaedah objek dengan mudah untuk menetapkan nilai peta1 dan peta2 secara dinamik. Pendekatan ini bukan sahaja mudah dan mudah difahami, tetapi juga menyediakan fleksibiliti untuk menukar nilai map1 dan map2 pada bila-bila masa mengikut keperluan. Mari kita lihat langkah-langkah khusus di bawah!

Kandungan soalan

Menguji kod sampel saya: https://go.dev/play/p/g7lxjdnjnan

Keputusan akhir:

&{0}
&{1}

Bagaimana saya mahu output daripada terminal contoh

&{1}
&{1}

Kod saya dalam projek:

func Set(recv *Value, value Value) {
    reflect.ValueOf(recv).Elem().Set(reflect.ValueOf(value))
}

func (this *SetBlock) On_Exec(locals map[string]Value) {
        //this.inputs["Recv"].Value is pointing to the same value as global
    if this.inputs["Recv"].Value != nil {
        Set(&this.inputs["Recv"].Value, this.inputs["Value"].Value.Copy())
    }
        //this.layer.Game.Globals() is a original
        fmt.Println(this.layer.Game.Globals())
    this.outputs["After"].Value = Create_Bool(true)
}

Saya di sini kerana saya tidak tahu bagaimana untuk menyelidik perkara ini.

Ada perubahan a dan b. Orang yang membantu saya menggunakan ciri Tetapan menghantar kod kepada saya. Harap awak hantar juga. Atas sebab tertentu ia berjaya, tetapi kini tidak.

Saya tidak boleh menetapkan untuk memetakan, Kerana cara fungsi ini dibuat, saya tidak tahu sama ada nilai itu datang daripada tatasusunan (jika ia pembolehubah atau label peta)

Fungsi "Tetapan" tersedia untuk pelbagai jenis https://go.dev/play/p/tggxpxf5kx9

Salah satu cara yang saya pasti akan berkesan ialah mencipta penunjuk, bukan penunjuk peta, Penunjuk kepada 2 nilai yang dipetakan

Fungsi "Set" adalah berdasarkan penetapan penuding kepada penuding lain. Saya rasa ralatnya ialah saya menunjuk kepada penunjuk yang salah

Penyelesaian

Saya membayangkan bahawa semasa mencipta nilai, saya mencipta dua penunjuk kepada nilai i.e. ** Dan berubah dengan cara ini. Terima kasih: @JimB

Atas ialah kandungan terperinci Tetapkan nilai peta1 dan peta2 melalui penunjuk pemantul. 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