首頁 > 後端開發 > Golang > 主體

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

王林
發布: 2024-02-05 21:30:04
轉載
1037 人瀏覽過

(*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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板