美文网首页Go Lang 实战
Go类型转换(一)

Go类型转换(一)

作者: 草莓君_ | 来源:发表于2019-07-30 19:07 被阅读0次

    除常量、别名类型以及未命名类型外,Go强制要求使用显式类型转换。

        a := 10
        b := byte(a)
        c := a + int(b)      //混合类型表达式必须确保类型一致
    

    1.语法歧义
    如果转换的目标是指针、单向通道或没有返回值的函数类型,那么必须使用括号,以避免造成语法分解错误。

        x := 100
        p := *int(&x)  //编译错误 cannot convert &x (type *int) to type int
    

    正确的做法是用括号,让编译器将*int解析为指针类型。

        (*int)(p)
        (<-chan int)(c)
        (func())(x)
    
        func()int(x)    //返回值的函数类型可省略括号,但依然建议使用。
        (func()int)(x)
    

    相关文章

      网友评论

        本文标题:Go类型转换(一)

        本文链接:https://www.haomeiwen.com/subject/yntorctx.html