ParseBool 将字符串转换为布尔值

func main() {fmt.Println(strconv.ParseBool("1"))    // truefmt.Println(strconv.ParseBool("t"))    // truefmt.Println(strconv.ParseBool("T"))    // truefmt.Println(strconv.ParseBool("true")) // truefmt.Println(strconv.ParseBool("True")) // truefmt.Println(strconv.ParseBool("TRUE")) // truefmt.Println(strconv.ParseBool("TRue"))// false strconv.ParseBool: parsing "TRue": invalid syntaxfmt.Println(strconv.ParseBool("0"))     // falsefmt.Println(strconv.ParseBool("f"))     // falsefmt.Println(strconv.ParseBool("F"))     // falsefmt.Println(strconv.ParseBool("false")) // falsefmt.Println(strconv.ParseBool("False")) // falsefmt.Println(strconv.ParseBool("FALSE")) // falsefmt.Println(strconv.ParseBool("FALse"))// false strconv.ParseBool: parsing "FAlse": invalid syntax
}

FormatBool 将布尔值转换为字符串 "true" 或 "false"

func main() {fmt.Println(strconv.FormatBool(0 < 1)) // truefmt.Println(strconv.FormatBool(0 > 1)) // false
}

AppendBool

// AppendBool 将布尔值 b 转换为字符串 "true" 或 "false"
// 然后将结果追加到 dst 的尾部,返回追加后的 []byte
func main() {rst := make([]byte, 0)rst = strconv.AppendBool(rst, 0 < 1)fmt.Printf("%s\n", rst) // truerst = strconv.AppendBool(rst, 0 > 1)fmt.Printf("%s\n", rst) // false
}

ParseFloat 将字符串转换为浮点数

func ParseFloat(s string, bitSize int) (f float64, err error)
bitSize:指定浮点类型(32:float32 64:float64)
func main() {s := "0.12345678901234567890"f, err := strconv.ParseFloat(s, 32)fmt.Println(f, err)          // 0.12345679104328156fmt.Println(float32(f), err) // 0.12345679f, err = strconv.ParseFloat(s, 64)fmt.Println(f, err) // 0.12345678901234568
}

ParseInt 将字符串转换为 int 类型

// s:      要转换的字符串
// base:   进位制(2 进制到 36 进制)
// bitSize:指定整数类型(0:int、8:int8、16:int16、32:int32、64:int64)
// func ParseInt(s string, base int, bitSize int) (i int64, err error)func main() {fmt.Println(strconv.ParseInt("123", 10, 8))// 123fmt.Println(strconv.ParseInt("12345", 10, 8))// 127 strconv.ParseInt: parsing "12345": value out of rangefmt.Println(strconv.ParseInt("2147483647", 10, 0))// 2147483647fmt.Println(strconv.ParseInt("0xFF", 16, 0))// 0 strconv.ParseInt: parsing "0xFF": invalid syntaxfmt.Println(strconv.ParseInt("FF", 16, 0))// 255fmt.Println(strconv.ParseInt("0xFF", 0, 0))// 255
}

ParseUint

//功能同 ParseInt 一样,只不过返回 uint 类型整数
func ParseUint(s string, base int, bitSize int) (n uint64, err error)

Atoi

相当于 ParseInt(s, 10, 0)

func Atoi(s string) (i int, err error)func main() {fmt.Println(strconv.Atoi("2147483647"))// 2147483647fmt.Println(strconv.Atoi("2147483648"))// 2147483647 strconv.ParseInt: parsing "2147483648": value out of range
}

FormatFloat

// FormatFloat 将浮点数 f 转换为字符串值
// f:要转换的浮点数
// fmt:格式标记(b、e、E、f、g、G)
// prec:精度(数字部分的长度,不包括指数部分)
// bitSize:指定浮点类型(32:float32、64:float64)
//
// 格式标记:
// 'b' (-ddddp±ddd,二进制指数)
// 'e' (-d.dddde±dd,十进制指数)
// 'E' (-d.ddddE±dd,十进制指数)
// 'f' (-ddd.dddd,没有指数)
// 'g' ('e':大指数,'f':其它情况)
// 'G' ('E':大指数,'f':其它情况)
//
// 如果格式标记为 'e','E'和'f',则 prec 表示小数点后的数字位数
// 如果格式标记为 'g','G',则 prec 表示总的数字位数(整数部分+小数部分)func FormatFloat(f float64, fmt byte, prec, bitSize int) stringfunc main() {f := 100.12345678901234567890123456789fmt.Println(strconv.FormatFloat(f, 'b', 5, 32))// 13123382p-17fmt.Println(strconv.FormatFloat(f, 'e', 5, 32))// 1.00123e+02fmt.Println(strconv.FormatFloat(f, 'E', 5, 32))// 1.00123E+02fmt.Println(strconv.FormatFloat(f, 'f', 5, 32))// 100.12346fmt.Println(strconv.FormatFloat(f, 'g', 5, 32))// 100.12fmt.Println(strconv.FormatFloat(f, 'G', 5, 32))// 100.12fmt.Println(strconv.FormatFloat(f, 'b', 30, 32))// 13123382p-17fmt.Println(strconv.FormatFloat(f, 'e', 30, 32))// 1.001234588623046875000000000000e+02fmt.Println(strconv.FormatFloat(f, 'E', 30, 32))// 1.001234588623046875000000000000E+02fmt.Println(strconv.FormatFloat(f, 'f', 30, 32))// 100.123458862304687500000000000000fmt.Println(strconv.FormatFloat(f, 'g', 30, 32))// 100.1234588623046875fmt.Println(strconv.FormatFloat(f, 'G', 30, 32))// 100.1234588623046875
}

AppendFloat

//将浮点数 f 转换为字符串值,并将转换结果追加到 dst 的尾部
//返回追加后的 []byte
//func AppendFloat(dst []byte, f float64, fmt byte, prec int, bitSize int) []bytefunc main() {f := 100.12345678901234567890123456789b := make([]byte, 0)b = strconv.AppendFloat(b, f, 'f', 5, 32)b = append(b, " "...)b = strconv.AppendFloat(b, f, 'e', 5, 32)fmt.Printf("%s", b) // 100.12346 1.00123e+0
}

FormatInt

// 将 int 型整数 i 转换为字符串形式
// base:进位制(2 进制到 36 进制)
// 大于 10 进制的数,返回值使用小写字母 'a' 到 'z'
// func FormatInt(i int64, base int) stringfunc main() {i := int64(-2048)fmt.Println(strconv.FormatInt(i, 2))  // -100000000000fmt.Println(strconv.FormatInt(i, 8))  // -4000fmt.Println(strconv.FormatInt(i, 10)) // -2048fmt.Println(strconv.FormatInt(i, 16)) // -800fmt.Println(strconv.FormatInt(i, 36)) // -1kw
}

FormmaUint

// FormatUint 将 uint 型整数 i 转换为字符串形式
// base:进位制(2 进制到 36 进制)
// 大于 10 进制的数,返回值使用小写字母 'a' 到 'z'
func FormatUint(i uint64, base int) string

ITOA

Itoa 相当于 FormatInt(i, 10)
func Itoa(i int) stringfunc main() {fmt.Println(strconv.Itoa(-2048)) // -2048fmt.Println(strconv.Itoa(2048))  // 2048
}

AppendInt

// AppendInt 将 int 型整数 i 转换为字符串形式,并追加到 dst 的尾部
// i:要转换的字符串
// base:进位制
// 返回追加后的 []byte
func AppendInt(dst []byte, i int64, base int) []bytefunc main() {b := make([]byte, 0)b = strconv.AppendInt(b, -2048, 16)fmt.Printf("%s", b) // -800
}

AppendUint

// AppendUint 将 uint 型整数 i 转换为字符串形式,并追加到 dst 的尾部
// i:要转换的字符串
// base:进位制
// 返回追加后的 []byte
func AppendUint(dst []byte, i uint64, base int) []byte

Quote

// Quote 将字符串 s 转换为“双引号”引起来的字符串
// 其中的特殊字符将被转换为“转义字符”
// “不可显示的字符”将被转换为“转义字符”
func Quote(s string) string
func main() {fmt.Println(strconv.Quote(`C:\Windows`))// "C:\\Windows"
}

AppendQuote

// AppendQuote 将字符串 s 转换为“双引号”引起来的字符串,
// 并将结果追加到 dst 的尾部,返回追加后的 []byte
// 其中的特殊字符将被转换为“转义字符”
func AppendQuote(dst []byte, s string) []byte
func main() {s := `C:\Windows`b := make([]byte, 0)b = strconv.AppendQuote(b, s)fmt.Printf("%s", b) // "C:\\Windows"
}

QuoteToASCII

// QuoteToASCII 将字符串 s 转换为“双引号”引起来的 ASCII 字符串
// “非 ASCII 字符”和“特殊字符”将被转换为“转义字符”
func QuoteToASCII(s string) stringfunc main() {fmt.Println(strconv.QuoteToASCII("Hello 世界!"))// "Hello \u4e16\u754c\uff01"
}

AppendQuoteToASCII

// AppendQuoteToASCII 将字符串 s 转换为“双引号”引起来的 ASCII 字符串,
// 并将结果追加到 dst 的尾部,返回追加后的 []byte
// “非 ASCII 字符”和“特殊字符”将被转换为“转义字符”
func AppendQuoteToASCII(dst []byte, s string) []bytefunc main() {s := "Hello 世界!"b := make([]byte, 0)b = strconv.AppendQuoteToASCII(b, s)fmt.Printf("%s", b) // "Hello \u4e16\u754c\uff01"
}

QuoteRune

// QuoteRune 将 Unicode 字符转换为“单引号”引起来的字符串
// “特殊字符”将被转换为“转义字符”
func QuoteRune(r rune) string
func main() {fmt.Println(strconv.QuoteRune('好'))// '好'
}

AppendQuoteRune

// AppendQuoteRune 将 Unicode 字符转换为“单引号”引起来的字符串,
// 并将结果追加到 dst 的尾部,返回追加后的 []byte
// “特殊字符”将被转换为“转义字符”
func AppendQuoteRune(dst []byte, r rune) []byte
func main() {b := make([]byte, 0)b = strconv.AppendQuoteRune(b, '好')fmt.Printf("%s", b) // '好'
}

QuoteRuneToASCII

// QuoteRuneToASCII 将 Unicode 字符转换为“单引号”引起来的 ASCII 字符串
// “非 ASCII 字符”和“特殊字符”将被转换为“转义字符”
func QuoteRuneToASCII(r rune) string
func main() {fmt.Println(strconv.QuoteRuneToASCII('好'))// '\u597d'
}

AppendQuoteRune

// AppendQuoteRune 将 Unicode 字符转换为“单引号”引起来的 ASCII 字符串,
// 并将结果追加到 dst 的尾部,返回追加后的 []byte
// “非 ASCII 字符”和“特殊字符”将被转换为“转义字符”
func AppendQuoteRuneToASCII(dst []byte, r rune) []bytefunc main() {b := make([]byte, 0)b = strconv.AppendQuoteRuneToASCII(b, '好')fmt.Printf("%s", b) // '\u597d'
}

CanBackquote

// CanBackquote 判断字符串 s 是否可以表示为一个单行的“反引号”字符串
// 字符串中不能含有控制字符(除了 \t)和“反引号”字符,否则返回 false
func CanBackquote(s string) bool
func main() {b := strconv.CanBackquote("C:\\Windows\n")fmt.Println(b) // falseb = strconv.CanBackquote("C:\\Windows\r")fmt.Println(b) // falseb = strconv.CanBackquote("C:\\Windows\f")fmt.Println(b) // falseb = strconv.CanBackquote("C:\\Windows\t")fmt.Println(b) // trueb = strconv.CanBackquote("C:\\`Windows`")fmt.Println(b) // false
}

UnquoteChar

// UnquoteChar 将 s 中的第一个字符“取消转义”并解码
//
// s:转义后的字符串
// quote:字符串使用的“引号符”(用于对引号符“取消转义”)
//
// value: 解码后的字符
// multibyte:value 是否为多字节字符
// tail: 字符串 s 除去 value 后的剩余部分
// error: 返回 s 中是否存在语法错误
//
// 参数 quote 为“引号符”
// 如果设置为单引号,则 s 中允许出现 \' 字符,不允许出现单独的 ' 字符
// 如果设置为双引号,则 s 中允许出现 \" 字符,不允许出现单独的 " 字符
// 如果设置为 0,则不允许出现 \' 或 \" 字符,可以出现单独的 ' 或 " 字符
func UnquoteChar(s string, quote byte) (value rune, multibyte bool, tail string, err error)func main() {s := `\"大\\家\\好!\"`c, mb, sr, _ := strconv.UnquoteChar(s, '"')fmt.Printf("%-3c %v\n", c, mb)for ; len(sr) > 0; c, mb, sr, _ = strconv.UnquoteChar(sr, '"') {fmt.Printf("%-3c %v\n", c, mb)}// " false// 大 true// \ false// 家 true// \ false// 好 true// ! true
}

Unquote

// Unquote 将“带引号的字符串” s 转换为常规的字符串(不带引号和转义字符)
// s 可以是“单引号”、“双引号”或“反引号”引起来的字符串(包括引号本身)
// 如果 s 是单引号引起来的字符串,则返回该该字符串代表的字符
func Unquote(s string) (t string, err error)func main() {sr, err := strconv.Unquote(`"\"大\t家\t好!\""`)fmt.Println(sr, err)sr, err = strconv.Unquote(`'大家好!'`)fmt.Println(sr, err)sr, err = strconv.Unquote(`'好'`)fmt.Println(sr, err)sr, err = strconv.Unquote("`大\\t家\\t好!`")fmt.Println(sr, err)
}

IsPrint

// IsPrint 判断 Unicode 字符 r 是否是一个可显示的字符
// 可否显示并不是你想象的那样,比如空格可以显示,而\t则不能显示
// 具体可以参考 Go 语言的源码
func IsPrint(r rune) boolfunc main() {fmt.Println(strconv.IsPrint('a'))  // truefmt.Println(strconv.IsPrint('好'))  // truefmt.Println(strconv.IsPrint(' '))  // truefmt.Println(strconv.IsPrint('\t')) // falsefmt.Println(strconv.IsPrint('\n')) // falsefmt.Println(strconv.IsPrint(0))    // false
}

Go的strconv二相关推荐

  1. go 从入门到精通(二)基本数据类型和操作符

    一.文件名&关键字&标识符 所有go源码都是以.go结尾 标识符以字母或下划线开头,大小写敏感 下划线_是特殊标识符,用户忽略结果 保留关键字 导入包时可以设置别名 下面是保留关键字: ...

  2. go 语言系列(二)基本数据类型和操作符

    go 从入门到精通(二)基本数据类型和操作符 一.文件名&关键字&标识符 所有go源码都是以.go结尾 标识符以字母或下划线开头,大小写敏感 下划线_是特殊标识符,用户忽略结果 保留关 ...

  3. GoLang之map底层系列二(浅显学习)

    文章目录 GoLang之map底层系列二(浅显学习) 1.map++ 2.map引用传递 3.map不是并发安全 4.map的value为空接口 5.map的value为切片 6.value,ok=m ...

  4. Go语言学习之路(二)

    Go语言学习之路(二) 面对对象编程思想 抽象 封装 继承 接口 文件 命令行参数 Json 序列化 反序列化(unmarshal) 单元测试 Redis Redis简介 Redis基本使用 Go连接 ...

  5. 服务计算作业二——GO语言TDD实践报告

    服务计算作业二--GO语言TDD实践报告 服务计算作业二--GO语言TDD实践报告 教程学习 为一个重复字符五次的函数编写测试,并先使用最少的代码让失败的测试先跑起来(核心概念) 把代码补充完整,使得 ...

  6. Golang 基础二

    十一.接口 (interface) 11.1 接口 Go 语言不是一种 "传统" 的面向对象编程语言:它里面没有类和继承的概念. 但是 Go 语言里有非常灵活的 接口 概念,通过它 ...

  7. go基础之map-增和改(二)

    go基础之map-增和改(二) 写在之前 环境说明 makemap_small和makemap的区别 添加元素(没触发扩容的情况) 一直到在发生扩容前的map内存结构是怎样的呢 发生扩容 总结 写在之 ...

  8. go-ElasticSearch实战篇(二)

    前言 哈喽,everybody,这是go-elastic学习系列教程第二篇文章.????上一篇我们学习了ElasticSearch基础,如果还不懂基础的,可以先看一看上一篇文章,????传送门.这一篇 ...

  9. 一步一步完成 MIT-6.824-Lab1 : MapReduce 之二

    一步一步完成 MIT-6.824-Lab1 : MapReduce 之二 GitHub代码仓库:Mit-6.824-Lab1-MapReduce 接上文 一步一步完成MIT-6.824-Lab1:Ma ...

最新文章

  1. 路由器:访问控制列表
  2. 15万奖金强化学习赛事!Go-Bigger多智能体决策智能挑战赛来了!
  3. 任务计划程序-Windows2008定时重启
  4. 1071svm函数 r语言_如何利用R语言中的rpart函数建立决策树模型
  5. swift4.2 - 一个自定义view弹框
  6. 研究人员的AI技术能够实时匹配活页乐谱与MIDI音频
  7. waf可以检测哪个端口的流量_锐速云:CC防御过程中,WAF的主要特点有哪些?
  8. okhttp 连接池_okhttp 源码分析
  9. 数据管理的3种方法,看完后感叹:数字化转型、数据中台真不难
  10. itextpdf 实现html转pdf中中文及图片base64的解决方法
  11. 「CSDN年度征文」微软学生大使、VSC中文社区、KDD CUP...2020年,我与技术社区
  12. 视频实现blob加密
  13. 微信小程序点击事件(bindtap)传递参数的方法
  14. Openwrt 下 L2TP搭建
  15. 基于微信小程序的充电桩预约管理系统的设计与实现(论文+源码)_kaic
  16. Alevel英美文学中的女性意识觉醒
  17. pyqt实现图片轮播
  18. 【阿里云】深入分析阿里云中图片服务的架构经验
  19. 【野蛮成长】经济学:红海与蓝海
  20. HTML之body标签中的相关标签补充

热门文章

  1. 工作流调度系统介绍,常见工作流调度系统对比,azkaban与Oozie对比,Azkaban介绍与特性(来自学习笔记)
  2. 你该认识这样的Linux_shell之变量操作符与分支判断
  3. 表的插入、更新、删除、合并操作_8_手工插入数据
  4. 【tensorflow】model.fit() fit函数
  5. php里 like什么意思,php – 是LIKE,但是int表示应该检查的字符串
  6. pytorch载入预训练模型后,训练指定层
  7. 语义分割 | segnet 制作自己的数据,如何训练,如何测试,如何评价
  8. mysql通过binlog日志来恢复数据
  9. c++测试题2016-6-2
  10. 故障排查:是什么 导致了客户端批量心跳超时掉线