Go基本数据类型与字符串互转
Go的strconv包实现了基本数据类型的字符串表示形式之间的转换
判断相关
IsPrint(r rune) bool :是否可打印
CanBackquote(s string) bool :是否可以不被修改的表示为一个单行的、没有空格和tab之外控制字符的反引号字符串
字符串解析
Quote(s string) string :字符串s在go语法下的双引号字面值表示,控制字符、不可打印字符会进行转义
QuoteToASCII(s string) string:字符串s在go语法下的双引号字面值表示,控制字符和不可打印字符、非ASCII字符会进行转义
QuoteRune(r rune) string :字符r在go语法下的单引号字面值表示,控制字符、不可打印字符会进行转义
QuoteRuneToASCII(r rune) string:字符r在go语法下的单引号字面值表示,控制字符、不可打印字符、非ASCII字符会进行转义
Unquote(s string) (string, error)
解析一个单引号、双引号、反引号包围的go语法字符串并返回表示的值 单引号会认为是go字符字面值,返回一个单字符的字符串
字符串转换为其他
ParseBool(str string) (bool, error)
返回字符串表示的bool值 仅接受1、0、t、f、T、F、true、false、True、False、TRUE、FALSE 其他字符串返回错误
ParseInt(s string, base int, bitSize int) (i int64, err error)
返回字符串表示的整数值,接受正负号 base指定进制(2到36),如果为0,会从字符串前置判断,"0x"是16进制,"0"是8进制,否则是10进制 bitSize指定结果必须能无溢出赋值的整数类型,0、8、16、32、64分别代表int、int8、int16、int32、int64
Atoi(s string) (int, error):是ParseInt(s, 10, 0)的简写
ParseUint(s string, base int, bitSize int) (n uint64, error):类似ParseInt但不接受正负号
ParseFloat(s string, bitSize int) (float64, error)
返回字符串表示的浮点数 如果s合乎语法规则,函数会返回最为接近s表示值的一个浮点数 bitSize指定结果必须能不改变精确值的赋值的浮点类型,32是float32,64是float64
其他转换为字符串
FormatBool(b bool) string :根据b的值返回"true"或"false"
FormatInt(i int64, base int) string
返回i的base进制的字符串表示 base 必须在2到36之间 结果中会使用小写字母'a'到'z'表示大于10的数字
Itoa(i int) string :是FormatInt(i, 10) 的简写
FormatUint(i uint64, base int) string :是FormatInt的无符号整数版本
FormatFloat(f float64, fmt byte, prec, bitSize int) string
将浮点数表示为字符串并返回 fmt表示输出格式: 'f' 不用指数的格式 'b' 二进制格式 'e' 小写e的指数格式 'E' 大写E的指数格式 'g' 根据数据大小自动使用小写e指数格式或不用指数格式 'G' 根据数据大小自动使用大写E指数格式或不用指数格式 prec控制精度 对'f'、'e'、'E',表示小数点后的数字个数 对'g'、'G',表示包含 整数位+小数点+小数位 的总字符数 如果设置为-1,则根据系统等情况自动选择精度,本人在本人电脑测试小数点后最多6位 bitSize表示f的类型:32:float32、64:float64
数据拼接
AppendBool(dst []byte, b bool) []byte :等价于append(dst, FormatBool(b)...)
AppendFloat(dst []byte, f float64, fmt byte, prec, bitSize int) []byte :等价于append(dst, FormatFloat(f, fmt, prec, bitSize)...)
AppendInt(dst []byte, i int64, base int) []byte :等价于append(dst, FormatInt(I, base)...)
AppendQuote(dst []byte, s string) []byte :等价于append(dst, Quote(s)...)
AppendQuoteRune(dst []byte, r rune) []byte :等价于append(dst, QuoteRune(r)...)
AppendQuoteRuneToASCII(dst []byte, r rune) []byte :等价于append(dst, QuoteRuneToASCII(r)...)
AppendQuoteToASCII(dst []byte, s string) []byte :等价于append(dst, QuoteToASCII(s)...)
AppendUint(dst []byte, i uint64, base int) []byte :等价于append(dst, FormatUint(I, base)...)