在go語言中,不同類型的變量之間賦值需要顯示轉換。
語法:T t=T(e)
var i int=1 //將i轉換為float類型 var j float32=float32(i)
基本數據類型轉string
方法1:fmt.Sprintf("%參數",表達式)
func Sprintf(forat string,a ...interface{}) string
Sprintf根據format參數生成格式化的字符串並返回該字符串
var num int =1 var str string="ok" //int類型轉string str=fmt.Sprintf("%d",num) fmt.Printf("n=%v,v=%v",num,str)
var e byte='a' var str string="" //byte類型轉string //%c 相應Unicode碼點所表示的字符 str=fmt.Sprintf("%c",e) fmt.Printf("n=%v,v=%v",e,str)
var b bool=true var str string="" //bool類型轉string //%t true 或 false。 //%q 雙引號圍繞的字符串,由Go語法安全地轉義 str=fmt.Sprintf("%t",b) fmt.Printf("n=%v,v=%q",b,str)
var f float32=20.39 var str string="" //float類型轉string //%t 有小數而無指數 //%q 雙引號圍繞的字符串,由Go語法安全地轉義 str=fmt.Sprintf("%f",f) fmt.Printf("n=%v,v=%q",f,str)
方法2:使用strconv包的函數
導包
import ( "fmt" "strconv" )
var num int64=20 var str string="" //int類型轉string //base后面跟進制 str=strconv.FormatInt(num,10) fmt.Printf("n=%v,v=%q",num,str)
var num float64=20.55 var str string="" //float類型轉string //'f'是格式 10表示小數保留十位 64表示這個小數是float64 str=strconv.FormatFloat(num,'f',10,64) fmt.Printf("n=%v,v=%q",num,str)
var bl bool=true var str string="" //bool類型轉string str=strconv.FormatBool(bl) fmt.Printf("n=%v,v=%q",bl,str)
string類型轉基本數據類型
var num int=1 var str string="" //string類型轉int str=strconv.Itoa(num) fmt.Printf("n=%v,s=%q",num,str)
var bl bool var str string="true" //string類型轉bool //strconv.ParseBool會返回兩個值 bl,_=strconv.ParseBool(str) fmt.Printf("n=%v,s=%q",bl,str)