golang一定要用指針嗎?Go語言中仍然有指針,但是沒有指針運算,所以不同于C語言指針,更像是引用Go語言調用函數時,是傳遞的值,所以為了提高效率,仍然保留指針,接下來我們就來聊聊關于golang一定要用指針嗎?以下内容大家不妨參考一二希望能幫到您!
Go語言中仍然有指針,但是沒有指針運算,所以不同于C語言指針,更像是引用。Go語言調用函數時,是傳遞的值,所以為了提高效率,仍然保留指針。
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每日頭條,我们将持续为您更新最新资讯!