-2
我有這個小golang測試我不明白:類型聲明的重要性,零值
package main
import "fmt"
type myObj struct {
}
func nilObj() *myObj {
return nil
}
func nilInt() interface{} {
return nil
}
func main() {
var obj1 interface{}
fmt.Println(obj1 == nil) // true
obj1 = nilObj()
fmt.Println(obj1 == nil) // false
var obj2 *myObj
fmt.Println(obj2 == nil) // true
obj2 = nilObj()
fmt.Println(obj2 == nil) // true
var obj3 interface{}
fmt.Println(obj3 == nil) // true
obj3 = nilInt()
fmt.Println(obj3 == nil) // true
}
OBJ1和OBJ2之間,只有變量聲明的變化,但其結果是不同的。
在obj1和obj3之間,函數調用不會返回相同的類型(結構指針vs接口)。我不完全確定我理解結果。
任何幫助是歡迎(https://play.golang.org/p/JcjsJ-_S8I)
無法再找到這樣的解釋。感謝您的提醒! – Redtakfeoh