在将一个对象(类型1(成员复制到另一个对象成员(类型2(的过程中进入以下场景:
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中至少有一个不是定义的类型