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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[Golang] string类型和其他类型的值的互转

發(fā)布時間:2023/11/30 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Golang] string类型和其他类型的值的互转 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

問題

由于在開發(fā)過程中遇到類型轉(zhuǎn)換問題,比如在web中某個參數(shù)是以string存在的,這個時候需要轉(zhuǎn)換成其他類型,這里官方的strconv包里有這幾種轉(zhuǎn)換方法。

實現(xiàn)

有兩個函數(shù)可以實現(xiàn)類型的互轉(zhuǎn)(以int轉(zhuǎn)string為例)
1. FormatInt (int64,base int)string
2. Itoa(int)string
打開strconv包可以發(fā)現(xiàn)Itoa的實現(xiàn)方式如下:

// Itoa is shorthand for FormatInt(int64(i), 10). func Itoa(i int) string {return FormatInt(int64(i), 10) }

也就是說itoa其實是更便捷版的FormatInt,以此類推,其他的實現(xiàn)也類似的。

示例

  • int 和string 互轉(zhuǎn)
//int 轉(zhuǎn)化為string s := strconv.Itoa(i) s := strconv.FormatInt(int64(i), 10) //強制轉(zhuǎn)化為int64后使用FormatInt//string 轉(zhuǎn)為int i, err := strconv.Atoi(s)
  • int64 和 string 互轉(zhuǎn)
//int64 轉(zhuǎn) string,第二個參數(shù)為基數(shù) s := strconv.FormatInt(i64, 10) // string 轉(zhuǎn)換為 int64 //第二參數(shù)為基數(shù),后面為位數(shù),可以轉(zhuǎn)換為int32,int64等 i64, err := strconv.ParseInt(s, 10, 64)
  • float 和 string 互轉(zhuǎn)
// flaot 轉(zhuǎn)為string 最后一位是位數(shù)設(shè)置float32或float64 s1 := strconv.FormatFloat(v, 'E', -1, 32) //string 轉(zhuǎn) float 同樣最后一位設(shè)置位數(shù) v, err := strconv.ParseFloat(s, 32) v, err := strconv.atof32(s)
  • bool 和 string 互轉(zhuǎn)
// ParseBool returns the boolean value represented by the string. // It accepts 1, t, T, TRUE, true, True, 0, f, F, FALSE, false, False. // Any other value returns an error. func ParseBool(str string) (bool, error) {switch str {case "1", "t", "T", "true", "TRUE", "True":return true, nilcase "0", "f", "F", "false", "FALSE", "False":return false, nil}return false, syntaxError("ParseBool", str) }// FormatBool returns "true" or "false" according to the value of b func FormatBool(b bool) string {if b {return "true"}return "false" }//上面是官方實現(xiàn),不難發(fā)現(xiàn)字符串t,true,1都是真值。 //對應(yīng)轉(zhuǎn)換: b, err := strconv.ParseBool("true") // string 轉(zhuǎn)bool s := strconv.FormatBool(true) // bool 轉(zhuǎn)string
  • interface轉(zhuǎn)其他類型
    有時候返回值是interface類型的,直接賦值是無法轉(zhuǎn)化的。
var a interface{} var b string a = "123" b = a.(string)

通過a.(string) 轉(zhuǎn)化為string,通過v.(int)轉(zhuǎn)化為類型。
可以通過a.(type)來判斷a可以轉(zhuǎn)為什么類型。

總結(jié)

以上是生活随笔為你收集整理的[Golang] string类型和其他类型的值的互转的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。