這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
摘自快樂編程 » golang類型轉換
golang是強型別語言,在應用過程中類型轉換基本都會用到。下面整理一下常用的類型轉換,會持續更新。
整形轉字串
fmt.Println(strconv.Itoa(100))
該方法的源碼是:
// Itoa is shorthand for FormatInt(i, 10).
func Itoa(i int) string {
return FormatInt(int64(i), 10)
}
可以看出是FormatInt方法的簡單實現。
字串轉整形
i, _ := strconv.Atoi("100")
fmt.Println(i)
64位整形轉字串
var i int64
i = 0x100
fmt.Println(strconv.FormatInt(i, 10))
FormatInt第二個參數表示進位,10表示十進位。
位元組轉32位整形
b := []byte{0x00, 0x00, 0x03, 0xe8}
bytesBuffer := bytes.NewBuffer(b)
var x int32
binary.Read(bytesBuffer, binary.BigEndian, &x)
fmt.Println(x)
其中binary.BigEndian表示位元組序,相應的還有little endian。通俗的說法叫大端、小端。
32位整形轉位元組
var x int32
x = 106
bytesBuffer := bytes.NewBuffer([]byte{})
binary.Write(bytesBuffer, binary.BigEndian, x)
fmt.Println(bytesBuffer.Bytes())
位元組轉字串
fmt.Println(string([]byte{97, 98, 99, 100}))
字串轉位元組
fmt.Println([]byte("abcd"))