猿问

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)

}


至尊宝的传说
浏览 188回答 1
1回答

开心每一天1111

MyFloat(2)是一种转换。MyFloat2{3}是一个复合文字。可以在结构上使用转换: var f3 struct {    X float64 } f4 := MyFloat2(f3)
随时随地看视频慕课网APP

相关分类

Go
我要回答