Go 这究竟是什么;铸造;你在戈朗干什么?
有人能告诉我这个围棋语法的正确方向吗:Go 这究竟是什么;铸造;你在戈朗干什么?,go,syntax,casting,type-assertion,Go,Syntax,Casting,Type Assertion,有人能告诉我这个围棋语法的正确方向吗: (*int)(nil) 如果我有一个给定类型的a值,并且我想将其转换为float64,那么我可以这样做: var num int = 65 fnum := float64(num) func main() { concretevalue := dosomething("hello!") fmt.Printf("%T : %v", concretevalue, concretevalue) } f
(*int)(nil)
如果我有一个给定类型的a值,并且我想将其转换为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)
}
如果我有一个接口,并且我想将其“强制转换”为某种类型,我可以这样做:
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,然后取消对它的引用。它声明了一个nil
指针,指向int
类型的值。表达式(*int)(nil)
将非类型值nil
转换为*int
。(*int)
中的括号将“*”与int
分组。类似于