Go:为什么结构“实例化”与其他类型不同?

时间:2014-10-21 22:26:34

标签: go

在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)
}

1 个答案:

答案 0 :(得分:3)

MyFloat(2)conversionMyFloat2{3}composite literal

可以在结构上使用转换:

 var f3 struct {
    X float64
 }
 f4 := MyFloat2(f3)

playground