go学习笔记
基础
go 定义变量的几种方式
常量的声明
go基本数据类型
go语言中的流程控制
golang中的数组
切片
golang中的map 详解
golang 函数详解
内置函数 panic/recover
golang time包 以及日志函数
golang中的指针
golang 中的结构体
Golang 结构体 和 json互相转换 序列化 反序列化
Golang 中的 go mod 以及 Golang包 详解
golang 中的接口
golang goroutine channel 实现并发 和 并行
channel
goroutine 互斥锁 读写互斥锁
golang 反射
golang 标准库
io
strconv
工具 + blog
进程 线程 协程
空接口 类型断言
为Go项目编写Makefile
减小 Go 代码编译后的二进制体积
go windows下编译linux可执行文件
本文档使用 MrDoc 发布
-
+
首页
strconv
# strconv ## Atoi 和 Itoa * atoi (表示 ascii to integer) `a to i ` * itoa (表示 integer to ascii ) `i to a ` `Atoi`将string转成int,`Itoa`将int转成string。例如: ```go fmt.Println(strconv.Atoi("123")) // 123, nil fmt.Println(strconv.Atoi("123a")) // 0, strconv.ParseInt: parsing "123a": invalid syntax fmt.Println(strconv.Itoa(123)) // 123 ``` 实际上,`Atoi`和`Itoa`分别调用了`ParseInt`和`FormatInt`方法。 ## format 和 parse format和parse是两组相反的方法,用于string和其它类型之间的相互转化。相关方法有: - func FormatBool(b bool) string - func FormatFloat(f float64, fmt byte, prec, bitSize int) string - func FormatInt(i int64, base int) string - func FormatUint(i uint64, base int) string - func ParseBool(str string) (bool, error) - func ParseFloat(s string, bitSize int) (float64, error) - func ParseInt(s string, base int, bitSize int) (i int64, err error) - func ParseUint(s string, base int, bitSize int) (uint64, error) format相关方法将其它类型的数据转换为string,例如: ```go fmt.Println(strconv.FormatBool(true)) // true fmt.Println(strconv.FormatFloat(3.1415, 'E', -1, 64)) // 3.1415E+00 fmt.Println(strconv.FormatInt(-42, 16)) // -2a fmt.Println(strconv.FormatUint(42, 16)) // 2a ``` parse相关方法将string转为其它类型的数据,例如: ```go fmt.Println(strconv.ParseBool("tRue")) // true <nil> fmt.Println(strconv.ParseFloat("3.1415", 32)) // 3.1414999961853027 <nil> fmt.Println(strconv.ParseFloat("3.1415", 64)) // 3.1415 <nil> fmt.Println(strconv.ParseInt("-42", 10, 32)) // -42 <nil> fmt.Println(strconv.ParseInt("11011", 2, 32)) // 27 <nil> fmt.Println(strconv.ParseInt("0xff", 0, 32)) // 255 <nil> fmt.Println(strconv.ParseUint("42", 16, 32)) // 66 <nil> ``` 对于`ParseBool`,遵循如下规则: - 返回`true`:`"1"`,`"t"`,`"T"`,`"TRUE"`,`"true"`,`"True"` - 返回`false`:`"0"`,`"f"`,`"F"`,`"FALSE"`,`"false"`,`"False"` - 其它情况报错 对于`ParseFloat`,`bitSize`取值为`32`或`64`。 对于`ParseInt`,`base`取值在2~36之间,如果`base`为0,那么会根据第一个参数字符串的前缀来决定进制:`0`为8进制,`0x`为16进制,其它情况为10进制。第三个参数`bitSize`可以为`0`(int),`8`(int8),`16`(int16),`32`(int32),`64`(int64)。 `ParseUint`与`ParseInt`类似。 ## IsGraphic 和 IsPrint - func IsGraphic(r rune) bool - func IsPrint(r rune) bool ## quote 和 unquote 相关方法有: - func Quote(s string) string - func QuoteRune(r rune) string - func QuoteRuneToASCII(r rune) string - func QuoteRuneToGraphic(r rune) string - func QuoteToASCII(s string) string - func QuoteToGraphic(s string) string - func Unquote(s string) (string, error) - func UnquoteChar(s string, quote byte) (value rune, multibyte bool, tail string, err error) quote相关方法返回一个用引号引着的字符串,unquote与quote行为相反,例如: ```go fmt.Println(strconv.Quote(`"Hello ☺"`)) // "\"Hello\t☺\"" fmt.Println(strconv.QuoteRune('☺')) // '☺' fmt.Println(strconv.QuoteRuneToASCII('☺')) // '\u263a' fmt.Println(strconv.QuoteToASCII(`"Hello ☺"`)) // "\"Hello\t\u263a\"" fmt.Println(strconv.Unquote(`"\"Hello\t☺\""`)) // "Hello ☺" <nil> ``` ## append append主要功能是将数据添加到slice中,相关方法有: - func AppendBool(dst []byte, b bool) []byte - func AppendFloat(dst []byte, f float64, fmt byte, prec, bitSize int) []byte - func AppendInt(dst []byte, i int64, base int) []byte - func AppendQuote(dst []byte, s string) []byte - func AppendQuoteRune(dst []byte, r rune) []byte - func AppendQuoteRuneToASCII(dst []byte, r rune) []byte - func AppendQuoteRuneToGraphic(dst []byte, r rune) []byte - func AppendQuoteToASCII(dst []byte, s string) []byte - func AppendQuoteToGraphic(dst []byte, s string) []byte - func AppendUint(dst []byte, i uint64, base int) []byte 例如: ```go dst := []byte("hello ") fmt.Println(string(strconv.AppendBool(dst, true))) // hello true fmt.Println(string(strconv.AppendInt(dst, -42, 16))) // hello -2a fmt.Println(string(strconv.AppendQuote(dst, "world"))) // hello "world" ``` ## CanBackquote `CanBackquote`方法用于判断一个字符串是否可以用反引号引起来,且不包含除了tab之外的任何控制字符。例如: ```go fmt.Println(strconv.CanBackquote("hello world")) // true fmt.Println(strconv.CanBackquote("`hello world`")) // false fmt.Println(strconv.CanBackquote("hello\nworld")) // false fmt.Println(strconv.CanBackquote("hello\tworld")) // true ```
admin
2023年4月3日 19:16
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码