初始化自定义类型
Initializing custom type
谁能帮我理解一下下面的情况?
有自定义类型
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.
有什么区别以及如何正确初始化此类型?
谢谢
最后一个不行,因为 Go 有强类型检查;此外,如果 Foo
具有 string
作为基本类型,则它不是 string
.
因此,您不能为其分配字符串。
要实现你想要的,你必须进行转换
func main() {
var a = "hello"
var b Foo
b = Foo(a)
fmt.Println("b:", b)
}
让我更正一下
var bar = "bar"
var foo Foo = Foo(bar)
fmt.Printf("\n%s", foo)
或者只是
var foo = Foo(bar)
谁能帮我理解一下下面的情况?
有自定义类型
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.
有什么区别以及如何正确初始化此类型?
谢谢
最后一个不行,因为 Go 有强类型检查;此外,如果 Foo
具有 string
作为基本类型,则它不是 string
.
因此,您不能为其分配字符串。
要实现你想要的,你必须进行转换
func main() {
var a = "hello"
var b Foo
b = Foo(a)
fmt.Println("b:", b)
}
让我更正一下
var bar = "bar"
var foo Foo = Foo(bar)
fmt.Printf("\n%s", foo)
或者只是
var foo = Foo(bar)