"cast" 在 Golang 中到底在做什么?
What exactly is this "cast" doing in Golang?
谁能给我指明 Go 语法的正确方向:
(*int)(nil)
如果我有一个给定类型的值,并且我想将它转换为,比方说,float64,我可以这样做:
var num int = 65
fnum := float64(num)
如果我有一个接口并且我想将其“转换”为某种类型,我可以这样做:
func main() {
concretevalue := dosomething("hello!")
fmt.Printf("%T : %v", concretevalue, concretevalue)
}
func dosomething( v interface{} ) string {
return v.(string)
}
(*int)(nil) 放在哪里?我如何获取有关此特定语法的信息?
它是一个类型转换,与float64(num)
一样,但是,因为转换的类型是一个指针,所以你需要额外的括号,否则*int(nil)将意味着转换nil
到 int,然后取消引用它。
谁能给我指明 Go 语法的正确方向:
(*int)(nil)
如果我有一个给定类型的值,并且我想将它转换为,比方说,float64,我可以这样做:
var num int = 65
fnum := float64(num)
如果我有一个接口并且我想将其“转换”为某种类型,我可以这样做:
func main() {
concretevalue := dosomething("hello!")
fmt.Printf("%T : %v", concretevalue, concretevalue)
}
func dosomething( v interface{} ) string {
return v.(string)
}
(*int)(nil) 放在哪里?我如何获取有关此特定语法的信息?
它是一个类型转换,与float64(num)
一样,但是,因为转换的类型是一个指针,所以你需要额外的括号,否则*int(nil)将意味着转换nil
到 int,然后取消引用它。