在golang中,结构体的实例化与"常规"类型:
如果是常规类型:MyFloat(2)
如果它是结构:MyFloat{2}
这有什么特别的原因吗?
package main
import (
"fmt"
)
type MyFloat float64
type MyFloat2 struct {
X float64
}
func main() {
f1 := MyFloat(2)
f2 := MyFloat2{3}
fmt.Println(f1)
fmt.Println(f2)
}
答案 0 :(得分:3)
MyFloat(2)
是conversion。 MyFloat2{3}
是composite literal。
可以在结构上使用转换:
var f3 struct {
X float64
}
f4 := MyFloat2(f3)