Saya sedang belajar menggunakan exercism.com dan membaca dokumentasi dan artikel yang disyorkan dalam sukatan pelajaran.
Kini saya berada dalam struktur dan menemui kod seterusnya
package main import "fmt" type Employee struct { firstName, lastName string salary int fullTime bool } func main() { employee := &Employee{ firstName: "Walddys", lastName: "Dorrejo", salary: 1200, fullTime: true, } fmt.Println("firstName", (*employee).firstName) }
Tetapi silap-silap saya masukkan fmt.println("firstname", *&employee.firstname)
yang memberikan saya hasil yang sama seperti yang saya gunakan sebelum ini dalam blok kod.
Persoalan saya, adakah terdapat perbezaan atau sama dalam menggunakan penunjuk ini?
&x
生成一个指向 x
的指针,而 *p
取消引用指针 p
。因此 *
和 &
有效地相互抵消,例如 v := *&x
和 v := x
Kedua-dua kenyataan adalah sama.
Maksudnya *&employee.firstName
与 employee.firstName
sama.
di mana employee
是指向结构体的指针,而 firstName
是该结构体的字段,则表达式 employee.firstName
实际上是 (*employee).firstName
ialah singkatan daripada.
Maksudnya *&employee.firstName
也与 (*employee).firstName
sama.
Sila ambil perhatian bahawa anda harus sentiasa memilih menggunakan tatatanda trengkas.
Atas ialah kandungan terperinci Apakah perbezaan antara (*pembolehubah) dan *&pembolehubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!