Adakah selamat untuk menyimpan rujukan tetapi tidak memberikan data kepada pembolehubah sebenar?

PHPz
Lepaskan: 2024-02-08 21:42:09
ke hadapan
882 orang telah melayarinya

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.

Kandungan soalan

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

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?

Penyelesaian

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!

sumber:stackoverflow.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!