Go string和interface{}與其他型別互轉
阿新 • • 發佈:2018-12-03
使用過go語言的都知道go語言對於型別的控制有多麼的嚴格,因此所有的型別都應該通過顯示的轉換來完成,下面就給出常見的string和其他常見型別的轉換以及interface{}型別轉換為其他型別,具體的底層實現可以參考strconv庫中的實現。
package main import ( "fmt" "strconv" ) func main() { //string與int互轉 var num1 int = 10; //Itoa底層呼叫的是FormatInt //I to S str1 := strconv.Itoa(num1) fmt.Println(str1) //S to I num1_int, _ := strconv.Atoi(str1) fmt.Println(num1_int) //int64與string型別 var num2 int64 = 432; //I to S str2 := strconv.FormatInt(num2, 10) fmt.Println(str2) //S to I num2_int, _ := strconv.ParseInt(str2, 10, 64) fmt.Println(num2_int) //float與string互轉 //bitSize表示最後一位的位數設定為float32或者float64型別 var f1 float64 = 12.432 //F to S str3 := strconv.FormatFloat(f1, 'E', -1, 32) fmt.Println(str3) //S to F f_float, _ := strconv.ParseFloat(str3, 32) fmt.Println(f_float) // bool與string互轉 var bb bool = true //B to S str4 := strconv.FormatBool(bb) fmt.Println(str4) //S to B b, _ := strconv.ParseBool(str4) fmt.Println(b) //interface轉其他型別————返回值是interface,直接賦值是無法轉化的 //interface 轉string var a interface{} var str5 string a = "3432423" str5 = a.(string) fmt.Println(str5) //interface 轉int var m interface{} var m1 int m = 43 m1 = m.(int) fmt.Println(m1) //interface 轉float64 var ff interface{} var ff1 float64 ff = 432.54 ff1 = ff.(float64) fmt.Println(ff1) }