Rumah >pembangunan bahagian belakang >Golang >Adakah selamat untuk menyimpan rujukan tetapi tidak memberikan data kepada pembolehubah sebenar?
php Editor Banana Apabila membincangkan sama ada selamat untuk menyimpan rujukan tetapi tidak memberikan data kepada pembolehubah sebenar, kita perlu memahami cara rujukan dan tugasan pembolehubah berfungsi. Dalam PHP, rujukan ialah alias yang menunjuk ke alamat memori pembolehubah yang berkongsi ruang memori yang sama. Apabila kami menyimpan rujukan tetapi tidak memberikan data kepada pembolehubah sebenar, kami sebenarnya mencipta rujukan kepada ruang dan bukannya data konkrit. Pendekatan ini selamat dalam beberapa situasi, tetapi terdapat beberapa kaveat.
Saya ingin menyimpan senarai rujukan dalam sekeping, tetapi saya tidak menemui sebarang sumber dalam talian yang menjelaskan adakah selamat untuk menyimpan rujukan tanpa menetapkan kepada pembolehubah?
Maksud saya, adakah mungkin sistem pengendalian menulis sesuatu ke alamat yang dirujuk yang tidak dijangka oleh pengaturcara?
Berikut ialah contoh kod:
type ListItem [8]uint64 list := make([]*ListItem, 0) list = append(list, &ListChunk{}) list = append(list, &ListChunk{}) list = append(list, &ListChunk{})
Dalam erti kata lain, adakah dijamin item dalam kepingan yang dinamakan list
akan kekal sama semasa program berjalan, tidak kira berapa lama masa yang diambil?
Mungkin bukan dalam kes anda (rujukan akan tetap sama), tetapi ia juga bergantung pada apa yang program anda lakukan dengannya:
Waktu jalan Go tidak mengubah rujukan (penunjuk) yang disimpan dalam kepingan semasa hayat program, tetapi terdapat syarat: -Anda tidak memperuntukkan semula kepingan atau penunjuk elemennya (susunan [8]uint64) dalam fungsi. Selagi anda tidak menetapkan semula nilai baharu kepada elemen kepingan, rujukan akan kekal tidak berubah.
Atas ialah kandungan terperinci Adakah selamat untuk menyimpan rujukan tetapi tidak memberikan data kepada pembolehubah sebenar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!