【发布时间】:2021-03-07 15:12:27
【问题描述】:
有人能指出这个 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) 适合哪里?如何获取有关此特定语法的信息?
【问题讨论】:
-
它声明了一个指向
int类型值的nil指针。 -
表达式
(*int)(nil)converts 无类型值nil到*int。(*int)中的括号将 '*` 与int组合在一起。
标签: go syntax casting type-assertion