Go語言從入門到精通 資料型別轉換

2021-09-10 12:00:22 字數 849 閱讀 6325

go 語言使用型別前置加括號的方式進行型別轉換,一般格式如下:

t(表示式)
其中,t 代表要轉換的型別。表示式包括變數、複雜算數和函式返回值等。

型別轉換時,需要考慮兩種型別的關係和範圍,是否會發生數值截斷等,參見下面**:

package main

import (

"fmt"

"math"

)func main()

**說明如下:

**輸出如下:

int8 range: -128 127

int16 range: -32768 32767

int32 range: -2147483648 2147483647

int64 range: -9223372036854775808 9223372036854775807

int32: 0x3e6f54ff 1047483647

int16: 0x54ff 21759

轉換前的值為:3.1415927;轉換後的值為:3

根據輸出結果,16 位有符號整型的範圍是 -32768~32767,而 a 變數的 1047483647 不在這個範圍內。1047483647 對應的十六進製制為 0x3e6f54ff,轉為 16 位變數後,長度縮短一半,也就是在十六進製製上砍掉一半,變成 0x54ff,對應的十進位制值為 21759。

浮點數在轉換為整型時,會將小數部分去掉,只保留整數部分。

整型截斷在型別轉換中發生的較為隱性,有些即為難追查的問題,很小一部分是由整型截斷造成。

提取碼:qysq

收藏

Go語言從入門到精通 資料型別

在 go 程式語言中,資料型別用於宣告函式和變數。資料型別的出現是為了把資料分成所需記憶體大小不同的資料,程式設計的時候需要用大資料的時候才需要申請大記憶體,就可以充分利用記憶體。go 語言按類別有以下幾種資料型別 序號型別和描述 1布林型 布林型的值只可以是常量 true 或者 false。乙個簡...

Go語言從入門到精通 資料型別

在 go 程式語言中,資料型別用於宣告函式和變數。資料型別的出現是為了把資料分成所需記憶體大小不同的資料,程式設計的時候需要用大資料的時候才需要申請大記憶體,就可以充分利用記憶體。go 語言按類別有以下幾種資料型別 序號型別和描述 1布林型 布林型的值只可以是常量 true 或者 false。乙個簡...

Go語言從入門到精通 字元型別

字串中的每乙個元素叫做 字元 在遍歷或者單個獲取字串元素時可以獲得字元。go 語言的字元有以下兩種 使用 fmt.printf 中的 t動詞可以輸出變數的實際型別,使用這個方法可以檢視 byte 和 rune 的本來型別,如下 var a byte a fmt.printf d t n a,a va...