我對golang很陌生,一般編譯語言,所以請原諒我的無知。在這樣的一些代碼:變量賦值和傳遞參考之間有什麼區別?
package main
import "fmt"
func assign() int {
return 1
}
func reference(foo *int) int {
*foo = 2
return 0
}
func main() {
var a, b int
a = assign()
reference(&b)
fmt.Println(a)
fmt.Println(b)
}
...將值分配給與傳遞b通過引用有什麼實際區別?
就現實世界的代碼而言,爲什麼json.Unmarshal()要求你傳遞一個指向你空變量的指針,而不僅僅是返回Unmarshalled值,以便你可以將它分配給你的變量?
Go是「按價值傳遞」。所以'reference'函數將一個指向一個整數的指針恰好作爲一個參考值。您不需要在該功能中返回任何內容。 – squiguy