Go 類型強制轉換


Go 類型強制轉換

 

強制類型的語法格式:var a T = (T)(b),使用括號將類型和要轉換的變量或表達式的值括起來

 

強制轉換需要滿足如下任一條件:(x是非常量類型的變量,T是要轉換的類型)

1. x可以直接復制給T類型變量

2. x的類型和T具有相同的底層類型

3. x的類型和T都是未命令的指針類型,並且指針指向的類型具有相同的底層類型

4. x的類型和T都是整型,或都是浮點型,或者都是復數類型

5. x是整數值 或[]byte類型的值,T是string類型

6. x是一個字符串,T是[]byte或 []rune

 

字符串和字節切片之間的轉換最常見,如下:

    s := "hello,世界"
    var a []byte
    a = []byte(s)

    var b []rune
    b = []rune(s)

    fmt.Printf("%T\n", a)
    fmt.Printf("%T\n", b)
    fmt.Printf("%T\n", s)

注意:

1. 數值類型和string類型之間的相互轉換可能造成值部分丟失;其他的轉換僅是類型的轉換,不會造成值的改變。string和數字志堅的轉換可使用標准庫strconv

2. Go語言沒有語言機制支持指針和interger之間的直接轉換,可以使用標准庫中的unsafe


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM