有人能帮我理解一下下面的情况吗?
自定义类型
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有强类型检查;如果Foo
以string
为基型,则它不是string
。
因此不能给它赋值字符串。
要达到你想要的效果,你必须做cast
func main() {
var a = "hello"
var b Foo
b = Foo(a)
fmt.Println("b:", b)
}