日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Golang——数据类型转换(Sprintf、Format、Append方式转换)

發布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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方式转换)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。