在Go语言中不存在隐式的类型转换,即自动转换,如PHP一样,但是在Go中所有的类型转换都必须显式的声明 格式:valueOfTypeB = typeB(valueOfTypeA)(类型 B 的值 = 类型 B(类型 A 的值))
var a int = 100
var b int8 = 100
c := a + int ( b)
d := int8 ( a) + b
fmt. Println ( c)
fmt. Println ( d)
e := a + b
fmt. Println ( e)
只有相同底层类型的变量之间可以进行相互转换(如将 int16 类型转换成 int32 类型),不同底层类型的变量相互转换时会引发编译错误(如将 bool 类型转换为 int 类型)
int转string
(1). 采用fmt.Sprintf("%d", n),效率最低
(2). 采用strconv.Itoa(n)
(3). 采用strconv.FormatInt(int64(a), 10),效率最高
var i int = 10
a := fmt. Sprintf ( "%d" , i)
fmt. Println ( a)
fmt. Printf ( "%T\n" , a)
b := strconv. Itoa ( i)
fmt. Println ( b)
fmt. Printf ( "%T\n" , b)
c := strconv. FormatInt ( int64 ( i) , 10 )
fmt. Println ( c)
fmt. Printf ( "%T\n" , c)
string转int
(1). string转成int : strconv.Atoi(a)
(2). string转成int64 : strconv.ParseInt(a, 10, 64)
var a string = "100"
b, _ := strconv. Atoi ( a)
fmt. Println ( b)
fmt. Printf ( "%T\n" , b)
c, _ := strconv. ParseInt ( a, 10 , 64 )
fmt. Println ( c)
fmt. Printf ( "%T\n" , c)
parse: Parse 系列函数用于将字符串转换为指定类型的值,其中包括 ParseBool()、ParseFloat()、ParseInt()、ParseUint()
(1). ParseBool() 函数用于将字符串转换为 bool 类型的值,它只能接受 1、0、t、f、T、F、true、false、True、False、TRUE、FALSE,其它的值均返回错误:func ParseBool(str string) (value bool, err error)
(2). ParseInt() 函数用于返回字符串表示的整数值(可以包含正负号)
(3). ParseUint() 函数的功能类似于 ParseInt() 函数,但 ParseUint() 函数不接受正负号,用于无符号整型
(4). ParseFloat() 函数用于将一个表示浮点数的字符串转换为 float 类型 func ParseFloat(s string, bitSize int) (f float64, err error) Format格式化:Format 系列函数实现了将给定类型数据格式化为字符串类型的功能,其中包括 FormatBool()、FormatInt()、FormatUint()、FormatFloat() Append:Append 系列函数用于将指定类型转换成字符串后追加到一个切片中,其中包含 AppendBool()、AppendFloat()、AppendInt()、AppendUint()