程序员

如果Go语言中两个拥有不同标的类型(underlying typ

2019-03-11  本文已影响0人  golang推广大使

当他们的标的类型(underlying type) 共享同一个标的类型的时候,他们就可以相互转换。

例如:

package main

type MyInt int64
type Ta    *int64
type Tb    *MyInt

func main() {
    var a Ta
    var b Tb

    //a = Ta(b) // error: direct conversion is not allowed

    // But indirect conversion is possible.
    y := (*MyInt)(b)
    x := (*int64)(y)
    a = x           // <=> the next line
    a = (*int64)(y) // <=> the next line
    a = (*int64)((*MyInt)(b))
    _ = a
}
上一篇 下一篇

猜你喜欢

热点阅读