Go語言數據類型轉換

Go語言數據類型轉換需要注意只能顯示轉換。直接上代碼吧 

package main

import (
	"fmt"
	"strconv"
	"unsafe"
	_ "unsafe" //注掉一個包
)

func main() {
    //Golang中數據類型轉換隻能用顯示轉換T(v)
	var number int32 = 100
	var num_1 float64 = float64(number)
	var num_2 int8 = int8(number)
	var num_3 int64 = int64(number)
	fmt.Printf("num_1m=%v,num_2=%v,num_3=%v\n", num_1, num_2, num_3)

	//基本數據類型轉成string類型
	var num_4 int = 99
	var num_5 float64 = 23.456
	var b bool = true
	var mychar byte = 'h'
	var str string
	//使用第一種方式轉換 fmt.Sprintf()方法,推薦使用這種方式
	str = fmt.Sprintf("%d", num_4)
	fmt.Printf("str type %T, str=%q\n", str, str)

	str = fmt.Sprintf("%f", num_5)
	fmt.Printf("str type %T, str=%q\n", str, str)

	str = fmt.Sprintf("%t", b)
	fmt.Printf("str type %T, str=%q\n", str, str)

	str = fmt.Sprintf("%c", mychar)
	fmt.Printf("str type %T, str=%q\n", str, str)

	//使用第二種方式轉換 strconv函數
	str = strconv.FormatInt(int64(num_4), 10) //第二個參數是n進制
	fmt.Printf("str type %T, str=%q\n", str, str)

	str = strconv.FormatFloat(num_5, 'f', 8, 64) //參考官方中文文檔,第3個參數表示精度,第4個參數是64位
	fmt.Printf("str type %T, str=%q\n", str, str)

	str = strconv.FormatBool(b)
	fmt.Printf("str type %T, str=%q\n", str, str)

	str = strconv.Itoa(num_4)
	fmt.Printf("str type %T, str=%q\n", str, str)

	//string類型轉換成基本類型
	var str4 string = "true"
	var boo bool
	boo, _ = strconv.ParseBool(str4) //ParseBool兩個返回值,我們只要第一個返回值bool
	fmt.Printf("boo type %T, boo=%v\n", boo, boo)

	var str5 string = "9.99"
	var n4 float64
	n4, _ = strconv.ParseFloat(str5, 64)
	fmt.Printf("n4 type %T, n4=%v\n", n4, n4)

	var str6 string = "11111110"
	var n5 int64
	var n6 int8
	n5, _ = strconv.ParseInt(str6, 10, 8) //返回值是int64的,第二個參數是按十進制輸出,第三個參數是8位,也可以是16,32,64
	n6 = int8(n5)                         //將int64轉換成int8
	fmt.Printf("n5 type %T, n5=%v;n6 type %T, n6=%v\n", n5, n5, n6, n6)

	//無符號16位轉換成無符號8位
	var speed uint16 = 3000
	var spd_high, spd_low uint8
	spd_high = uint8(speed >> 8)
	spd_low = uint8(speed & 0xff)
	fmt.Printf("spd_high =%#x,spd_low=%#x\n", spd_high, spd_low)

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章