Golang——数据类型转换(Sprintf、Format、Append方式转换)
生活随笔
收集整理的這篇文章主要介紹了
Golang——数据类型转换(Sprintf、Format、Append方式转换)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數據類型轉換:
- 類型轉換是將一種數據類型的變量轉為另一種類型的變量
- Go強制要求使用顯式類型轉換。所以語法更能確定語句及表達式的明確含義
- 轉換的時候如果大的轉給小的,會有精度損失(數據溢出)比如int64轉int8
轉換必須確保類型一致,同樣不能將非bool類型結果當做true/false使用
x := 100var b bool = x // 錯誤:cannot use x (type int) as type bool in assignmentif x { // 錯誤:non-bool x (type int) used as if condition}轉換格式:
// 將v轉成T類型,但是v本身的數據類型并不會改變,只是把v變量的值類型轉成T表達式 T(v)演示:
func main() {var a int = 1// a轉va的本身數據類型并不會改變,只是把a變量的值類型的值轉成T了var b float64 = float64(a)var c int = int(b)fmt.Printf("%T,%T", b, c) }輸出:
float64,int基本類型轉string類型:
Sprintf方式:
Sprintf():生成一個格式化的字符串
演示:
func main() {var num1 int = 9var num2 float64 = 9.99var b bool = falsevar str stringstr = fmt.Sprintf("%d", num1)fmt.Printf("str type %T str=%v\n ", str, str)str = fmt.Sprintf("%f", num2)fmt.Printf("%T str=%v\n", str, str)str = fmt.Sprintf("%t", b)fmt.Printf("%T str=%v\n", str, str)str = strconv.Itoa(num1)fmt.Printf("%T str=%v\n", str, str) }Format方式:
func main() {var num3 int = 24var num4 float64 = 1.111// 參數1:要轉的變量 參數2:進制str = strconv.FormatInt(int64(num3), 10)// 'f':格式 10:保留10位 64:float64str = strconv.FormatFloat(num4, 'f', 10, 64)fmt.Printf("%T str=%v\n", str, str)// bool轉字符串類型str := strconv.FormatBool(false)fmt.Printf("%T", str)// int類型轉字符串str2 := strconv.Itoa(24)fmt.Printf("\n%T", str2) }Append:
把整數等轉換為字符串后,添加到現有的字節數組中。
演示:
func main() {// 整數轉字符串,添加到字節數組中bytes := make([]byte, 0, 1024)bytes = strconv.AppendBool(bytes, true)// 第二個參數是要追加的數,指定10進制的方式追加bytes = strconv.AppendInt(bytes, 123456, 10)bytes = strconv.AppendQuote(bytes, "追加了嗎")fmt.Println("bytes:", string(bytes)) //字節轉字符 }string類型轉基本類型:
- 在將string類型轉換成基本數據類型時,要確保string類型能夠轉成有有效的數據
- 例:可以把"123"轉成int類型,但是不可以將"aaa"轉成int類型,編譯器不會報錯,go會把它變成默認值0,因為go會判斷這個值能不能轉成有效的數據,如果不可以會按照該數據的數據類型的默認值賦值。
strconv方式:
func main() {var str1 string = "123"fmt.Println(i)i, _ = strconv.ParseInt(str1, 10, 64)// 字符串轉為其它類型,只能是false和truestr3, err := strconv.ParseBool("false")if err != nil {fmt.Println(err)}fmt.Printf("\n%T", str3)//字符串轉換為整型str4, _ := strconv.Atoi("24")fmt.Printf("\n%T", str4)//字符串轉換為浮點數str5, _ := strconv.ParseFloat("24.99", 64) //參數2是數據類型大小fmt.Printf("\n%T", str5)fmt.Println(str5) }總結
以上是生活随笔為你收集整理的Golang——数据类型转换(Sprintf、Format、Append方式转换)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 拯救者linux无法正常关机,Ubunt
- 下一篇: oracle监听为blocked,关于“