字符串
-
字符串类型的值使用双引号""扩上,内容支持转义字符串.两侧使用反单引号时原格式输出
func main() { a := "a\tbc" b := `a\tbc` fmt.Println(a) //输出:a abc fmt.Println(b) //输出a\tabc }
字符串和数值转换
-
包strconv提供了字符串和其他类型相互转换的函数,下面以字符串和数值类型转换为例
-
int和string相互转换
package main import ( "fmt" "strconv" ) func main() { s := "11" /* 第一个参数:需要转换的字符串变量 第二个参数:这个数字是几进制,常用取值:2,8,10,16 第三个参数:认为这个数字的整数类型.可取值:0,8,16,32,64. 但是由于方法最后返回值是int64,所以第三个参数无论设置什么最终结果都是int64 */ i, _ := strconv.ParseInt(s, 10, 8) fmt.Println(i) fmt.Printf("%T\n", i) //简单写法,相当于strconv.ParseInt(s,10,64) i1, _ := strconv.Atoi(s) fmt.Println(i1) }
- Int转换成string
package main import ( "fmt" "strconv" ) func main() { i := 11 /* 第一个参数:必须是int64类型 第二个参数:进制数 */ s := strconv.FormatInt(int64(i), 10) fmt.Println(s) //输出:11 fmt.Printf("%T\n", s) //输出:string /* 由于平时常用int,且使用短变量时整数默认是int类型 所以下面方式较常用,把int转换为string */ s1 := strconv.Itoa(i) fmt.Println(s1) //输出:11 fmt.Printf("%T", s1) //输出:string }
- string转换为floatXX类型
package main import ( "fmt" "strconv" ) func main() { s := "1.5" /* 把字符串转换为指定类型 第一个参数:字符串 第二个参数:可取值为32和64,分别表示float32和float64 返回值是float64 */ f, _ := strconv.ParseFloat(s, 64) fmt.Println(f) fmt.Printf("%T", f) }
- floatXX转换为string类型
package main import ( "fmt" "strconv" ) func main() { f := 1.5 /* 把浮点型转换为字符串类型 第一个参数:浮点型变量 第二个参数: 'f'(-ddd.dddd) 'b'(-ddddp±ddd,指数为二进制) 'e'(-d.dddde±dd,十进制指数) 'E'(-d.ddddE±dd,十进制指数) 'g'(指数很大时用'e'格式,否则'f'格式) 'G'(指数很大时用'E'格式,否则'f'格式) 第三个参数:小数点精度,精度不够使用0补全,超出精度四舍五入 第四个参数:浮点型变量类型,64表示float64,32表示float32 */ s := strconv.FormatFloat(f, 'g', 5, 64) fmt.Println(s) }