tft每日頭條

 > 生活

 > golang一定要用指針嗎

golang一定要用指針嗎

生活 更新时间:2025-01-26 02:26:14

golang一定要用指針嗎?Go語言中仍然有指針,但是沒有指針運算,所以不同于C語言指針,更像是引用Go語言調用函數時,是傳遞的值,所以為了提高效率,仍然保留指針,接下來我們就來聊聊關于golang一定要用指針嗎?以下内容大家不妨參考一二希望能幫到您!

golang一定要用指針嗎(5.1Go語言中的指針)1

golang一定要用指針嗎

基本概念

Go語言中仍然有指針,但是沒有指針運算,所以不同于C語言指針,更像是引用。Go語言調用函數時,是傳遞的值,所以為了提高效率,仍然保留指針。

  • 使用*進行定義,例如:var p *int,現在p是一個指向int類型的指針
  • 所有新聲明的變量都分配了相應的零值,指針也不例外。新聲明或未指向的指針,值為nil
  • 讓指針指向時使用操作符address-of-operator(&)
示例一:指針與地址

package main import "fmt" func main() { var p *int fmt.Printf("initial pointer p = %v\n", p) var i int p = &i fmt.Printf("point to int p = %v\n", p) fmt.Printf("point to int value p = %v\n", *p) }

輸出如下,在未指向任何變量前p的值為nil,指向整型i後,p的值為地址,p的值為整型的默認值

initial pointer p = <nil> point to int p = 0xc0000bc000 point to int value p = 0

示例二:指針

因為指針沒有運算,所以*p 等同于(*p)

package main import "fmt" func main() { var p *int var i int p = &i *p fmt.Printf("*p = %v\n", *p) (*p) fmt.Printf("(*p) = %v\n", *p) }

輸出結果為

*p = 1 (*p) = 2

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved