<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] ## 1:基本介紹: Golang和java/c不同,Go在不同類型的變量之間賦值時需要顯式轉換(也就是強制轉換)。也就是說Golang中數據類型不能自動轉換。 ## 2:基本語法: 表達式T(v)將值v轉換為類型T T:就是數據類型,例如:int32,int64,float64 V:就是需要轉換的變量 ## 3:案例演示: 注意:go只有強制轉換 **《int32轉換----->float32》** ``` package main import ( "fmt" ) func main(){ var sum int32 = 100 // 要轉換的數據類型必須把變量傳入 var ret float32 = float32(sum) fmt.Printf("sum = %v","ret = %v",sum,ret) } ``` **運行結果:** ``` sum = 100 ret = 100 ``` <br> 《int32轉換------>float64》 ``` var sum int32 = 100 var ret1 float64 = float64(sum) fmt.Printf("sum = %v ret1 = %v",sum,ret1) ``` **運行結果:** `sum = 100 ret1 = 100` <br> 《int32轉換------->int64》 ``` // var ret2 int64 = int32(sum) 會報錯,必須是int64 var ret2 int64 = int64(sum) fmt.Printf("sum = %v ret2 = %v",sum,ret2) ``` **運行結果:** ``` sum = 100 ret2 = 100 ``` <br> <br> ## **4:細節說明:** 一、go中,數據類型的轉換可以是從表示范圍小->表示范圍大,也可以范圍大-- >范圍小 二、被轉換的是變量存儲的數據<即值),變量本身的數據類型并沒有變化! ``` package main import ( "fmt" ) func main(){ var sum int32 = 100 // 要轉換的數據類型必須把變量傳入 var ret float32 = float32(sum) fmt.Printf("sum = %v ret = %v",sum,ret) var ret1 float64 = float64(sum) fmt.Printf("sum = %v ret1 = %v",sum,ret1) // var ret2 int64 = int32(sum) 會報錯,必須是int64 var ret2 int64 = int64(sum) fmt.Printf("sum = %v ret2 = %v\n",sum,ret2) // 被轉換的是變量存儲的數據<即值),變量本身的數據類型并沒有變化! fmt.Printf("sum type is %T",sum) } ``` **運行結果:** ``` sum type is int32 ``` 三:在轉換中,比如將int64 轉成int8 \[ 128--127\],**編譯時不會報錯**,只是轉換的結果是**按益出處理**,和我們希望的結果不一樣。 ``` var f int64 = 99999 var d int8 = int(f) fmt.Printf(d) ``` **運行結果** ``` -97 ``` <br> <br> ## **5:數據類型轉換練習題** 一、判斷是否能夠編譯通過 ![](https://img.kancloud.cn/bc/76/bc76436e9970bc9fa6678273d0140f04_377x165.png) ## **6:課堂練習:** ### **題一**: 編譯不通過,報錯:43:5: cannot use n1 + 20 (type int32) as type int64 in assignment ``` package main import ( "fmt" ) func main(){ var n1 int32 = 12 var n2 int64 var n3 int8 n2 = n1 + 20 // int32-------交給了------》int64,錯誤,因為int32加上20,還是int32類型 n3 = n1 + 20 // int32-------交給了------》int8,錯誤 } ``` <br> **小思考:** 如何將上面的代碼修改正確呢?? 如下: ``` package main import ( "fmt" ) func main(){ var n1 int32 = 12 var n2 int64 var n3 int8 n2 = int64(n1) + 20 n3 = int8(n1) + 20 fmt.Println(n2,n3) } ``` **運行結果:** `32 32` <br> <br> ### **題二:** ``` package main import ( "fmt" ) func main(){ var n4 int32 = 12 var n5 int8 var n6 int8 // n6把n4轉換成int8 n6 = int8(n4) // 編譯可以通過,但是會按照溢出處理 n5 = int8(n4) // 編譯不通過,int8最多接受-127,127,所以編譯不通過 fmt.Printf(n6,n5) } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看