注册 登录

清河洛

Go基本数据类型与字符串互转

qingheluo2024-07-11清河洛156
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) strin...

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



网址导航