类型转换规则-将类型转换为其基础类型
在将一个对象(type1)成员复制到另一个对象(type2)成员的过程中进入以下场景:
package main
import "fmt"
type SomeType string
func main() {
source := SomeType("abc")
dest := string(source) // this works
fmt.Println(dest)
}
对于这种类型转换(string(source)),应用了 Go 规范中的哪个规则,以转换为基础类型?
回答
如果您阅读了关于转换的内容,您将看到非常量转换的规则。第一个适用:
- x可分配给 T。
和可分配性部分的链接。反过来,相关位是:
- x 的类型 V 和 T 具有相同的基础类型,并且 V 或 T 中至少有一个不是定义的类型。