继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

go标准库中strconv包

慕姐8265434
关注TA
已关注
手记 1309
粉丝 222
获赞 1065

这个包实现了基本数据之间进行相互转换。
一、常量
(1)IntSize
原型:const IntSize = intSize
其值是int或uint类型的字位数,32位操作系统其值是32,64位系统其值是64
二、变量
(1)ErrRange
原型:var ErrRange = errors.New("value out of range")
ErrRange表示超出目标类型表示范围。
(2)ErrSyntax
原型:var ErrSyntax = errors.New("invlid syntax")
ErrSyntax表示不符合目标类型语法。

package mainimport (    "fmt"
    "strconv")func main() {    /*---- 常量 ----*/
    fmt.Println(strconv.IntSize)    /*---- 变量 ----*/
    fmt.Println(strconv.ErrRange)
    fmt.Println(strconv.ErrSyntax)
}

三、方法
1)布尔与字符串之间进行相互转换
func FormatBool(b bool) string // 将布尔值转换为字符串 true 或false

// 将字符串转换为布尔值
// 当str为:1,t,T,TRUE,true,True中的一种时为真值
// 当str为:0,f,F,FALSE,false,False中的一种时为假值
// 当str不为上面的两种情况时,会返回一个错误
func ParseBool(str string) (bool, error)

package mainimport (    "fmt"
    "strconv")func main() {    /*--- bool -> string ---*/
    fmt.Println(strconv.FormatBool(true))
    fmt.Println(strconv.FormatBool(false))    /*--- string -> bool ---*/
    fmt.Println(strconv.ParseBool("1"))
    fmt.Println(strconv.ParseBool("t"))
    fmt.Println(strconv.ParseBool("TRUE"))
    fmt.Println(strconv.ParseBool("true"))
    fmt.Println(strconv.ParseBool("True"))

    fmt.Println(strconv.ParseBool("0"))
    fmt.Println(strconv.ParseBool("f"))
    fmt.Println(strconv.ParseBool("FALSE"))
    fmt.Println(strconv.ParseBool("false"))
    fmt.Println(strconv.ParseBool("False"))

    fmt.Println(strconv.ParseBool("dasd"))
}

2)整数和字符串进行转换
// 将整数转换为字符串形式。base表示进制转换,取值在2到36之间。
// 结果种大于10的数字用小写字母 a-z 表示
func FormatInt(i int64, base int) string
func FormatUint(i uint64, base int) string

// 将字符串解析为整数,ParseInt支持正负号,ParseUint不支持正负号。
// base 表示进位制(2到36),如果base位0,则根据字符串前缀判断,前缀 0x 表示十六进制,前缀 0 表示 8 进制,否则为 10 进制。
// bitSize 表示结果的位宽(包括符号位),0表示最大为宽。
func ParseInt(s string, base int, bitSize int) (i int64, err error)
func ParseUint(s string, base int, bitSize int) (uint64, error)

func Itoa(i int) string // 将整数转换位十进制字符串形式,(即:formatInt(i, 10)的简写)
func Atoi(s string) (int, error) // 将字符串转换为十进制整数,s为十进制值即:ParserInt(s, 10, 0)的简写

package mainimport (    "fmt"
    "strconv")func main() {    /*--- 整数 -> 字符串 ---*/
    fmt.Println(strconv.FormatInt(10, 2))
    fmt.Println(strconv.FormatUint(10, 2))
    fmt.Println(strconv.Itoa(12))    /*--- 字符串 -> 整数 ---*/
    fmt.Println(strconv.ParseInt("12", 8, 0))
    fmt.Println(strconv.ParseUint("12", 3, 0))
    fmt.Println(strconv.Atoi("12"))
}

3)浮点数和字符串之间进行转换
// 将字符串解析为浮点数,使用IEEE754规范进行舍入。
// bitSize 取值有 32 和 64 两种,表示转换结果的精度。
// 如果有语法错误,则err.Error = ErrSyntax
// 如果结果超出范围,则返回 ±Inf,er.Error = ErrRange
func ParseFloat(s string, bitSize int) (float64, error)

package mainimport (    "fmt"
    "strconv")func main() {    /*--- 浮点数 -> 字符串 ---*/
    fmt.Println(strconv.ParseFloat("123.23", 32))
}

4)字符串判断
// 判断字符串是否可以不被修改的表示为一个单行的反引号字符串。
// 字符串中不能含有控制字符(除了\t)和“反引号” 字符,否则返回 false
func CanBackquote(s string) bool

// 判断 r 是否为可打印字符
// 可否打印并不是你想象的那样,比如空格可以打印,而 \t 则不能打印
func IsPrint(r rune) bool

// 判断 r r是否为 Unicode 定义的图形字符。
func IsGraphic(r rune) bool

5)字符串转换
// 将 s 转换为双引号字符串
func Quote(s string) string

// 功能同上,非 ASCII 字符和不可打印字符会被转义
func QuoteToASCII(s string) string

// 功能同上,非图形字符会被转义
func QuoteToASCII(s string) string

// 功能同上,非ASCII字符和不可打印字符会被转义
func QuoteToASCII(s string) string

// 功能同上,非图形字符会被转义
func QuoteToGraphic(s string) string

// 将 r 转换为单引号字符
func QuoteRune(r rune) string

// 功能同上,非ASCII字符和不可打印字符会被转义
func QuoteRuneToASCII(r rune) string

// 功能同上,非图形字符会被转义
func QuoteRuneToGraphic(r rune) string

// Unquote 将 “带引号的字符串” s 转换为常规的字符串(不带引号和转义字符)
// s可以是 “单引号”、“双引号” 或 “反引号” 引起来的字符串(包括引号本身)
// 如果s是单引号引起来的字符串,则返回该字符串表达的字符
func Unquote(s string) (string, error)

// UnquoteChar 将带引号字符串(不包含首尾的引号)中的第一个字符 “取消转义” 并解码
// s      : 带引号字符串(不包含首尾的引号)
// quote:  字符串使用的 “引号符” (用于对字符串中的引号符 “取消转义”)

// value    :  解码后的字符
// multibyte:  value 是否为多字节字符
// tail        :  字符串 s 解码后剩余部分
// error     :  返回 s 中是否存在语法错误
// 参数 quote 为 “引号符”
// 如果设置为单引号,则 s 中允许出现 \‘、“ 字符,不允许出现单独 ' 字符
// 如果设置为双引号,则 s 中允许出现 "、’ 字符,不允许出现单独 " 字符
// 如果设置为0,则不允许出现 ' 或 " 字符,但可以出现单独的 ' 或 " 字符
func UnquoteChar(s string, quote byte) (value rune, multibyte bool, tail string, err error)

// 将各种类型转换为字符串后追加到 dst 尾部
func AppendInt(dst []byte, i int64, base int) []byte
func AppendUint(dst []byte, i uint64, base int) []byte
func AppendFloat(dst []byte, f float64, fmt byte, prec, bitSize int) []byte
func AppendBool(dst []byte, b bool) []byte

// 将各种类型转换为带引号字符串追加到 dst 尾部
func AppendQuote(dst []byte,s string) []byte
func AppendQutoToASCII(dst []byte, s string) []byte
func AppendQutoToGraphic(dst []byte, s string) []byte
func AppendQutoToRune(dst []byte, s string) []byte
func AppendQutoToTuneToASCII(dst []byte, r rune) []byte
func AppendQutoToGraphic(dst []byte, r rune) []byte



作者:laijh
链接:https://www.jianshu.com/p/2f4dba401e25


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP