在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)