首頁  >  文章  >  後端開發  >  (*variable) 和 *&variable 有什麼不同?

(*variable) 和 *&variable 有什麼不同?

王林
王林轉載
2024-02-05 21:30:04823瀏覽

(*variable) 和 *&variable 有什么区别?

問題內容

我正在使用 exercism.com 學習 go,並閱讀教學大綱中推薦的文件和文章。

現在我在結構中並找到了下一個程式碼

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)
}

但錯誤地,我輸入了 fmt.println("firstname", *&employee.firstname),這給我帶來了與先前在程式碼區塊中使用的相同結果。

我的問題是,使用這個指標是否有不同或相同?


正確答案


&x 產生一個指向x 的指針,而*p 取消引用指標p。因此 *& 有效地相互抵消,例如 v := *&xv := x 兩個語句是相同的。

這表示 *&employee.firstNameemployee.firstName 相同。

其中employee 是指向結構體的指針,而firstName 是該結構體的字段,則表達式employee.firstName 實際上是(*employee).firstName 的簡寫。

這表示 *&employee.firstName 也與 (*employee).firstName 相同。

請注意,您應該始終更喜歡使用速記符號。

以上是(*variable) 和 *&variable 有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除