初始化自定义类型



有人能帮我理解一下下面的情况吗?

自定义类型

type Foo string

这个建筑工程:

var foo Foo = "foo"
fmt.Printf("n%s", foo)

:

var bar = "bar"
var foo Foo = bar
fmt.Printf("n%s", foo)

抛出一个cannot use bar (variable of type string) as type Foo in variable declaration.有什么区别,我如何正确地初始化这个类型?由于🙂

让我更正一下

var bar = "bar"
var foo Foo = Foo(bar)
fmt.Printf("n%s", foo)

还是

var foo = Foo(bar)

最后一个不起作用,因为Go有强类型检查;如果Foostring为基型,则它不是string

因此不能给它赋值字符串。

要达到你想要的效果,你必须做cast

func main() {
var a = "hello"
var b Foo
b = Foo(a)
fmt.Println("b:", b)
}

最新更新