strconv包

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

这个包实现了基本数据之间进行相互转换。
一、常量
(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 main

import (
    "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 main

import (
    "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 main

import (
    "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 main

import (
    "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

可以参考:https://www.cnblogs.com/golove/p/3262925.html

目录
相关文章
|
5月前
|
Go
go fmt包格式化
go fmt包格式化
32 0
|
5月前
|
Go
Go string bytes、strings、strconv和unicode包相关方法
Go string bytes、strings、strconv和unicode包相关方法
31 0
|
4月前
|
Go
Golang内置Log包的基本使用
Golang内置Log包的基本使用
30 0
|
5月前
|
Cloud Native Go C语言
golang flag 包的使用指北
golang flag 包的使用指北
|
10月前
|
Go API
【golang】strconv.Atoi 和 strconv.Itoa
【golang】strconv.Atoi 和 strconv.Itoa
144 0
|
11月前
|
Go 索引
Go 中的格式化字符串`fmt.Sprintf()` 和 `fmt.Printf()`
在 Go 中,可以使用 fmt.Sprintf() 和 fmt.Printf() 函数来格式化字符串,这两个函数类似于 C 语言中的 scanf 和 printf 函数。本文介绍了五个最常用的格式化动词和参数索引的使用方法。
127 0
|
Go 数据格式
Go标准库 log | 文件操作 | strconv
Go标准库 log | 文件操作 | strconv
Golang:error包错误处理
Golang:error包错误处理
80 0
Golang:strings模块常用的字符串操作函数
Golang:strings模块常用的字符串操作函数
61 0
|
存储 安全 Go
Golang 同步原语:sync 包
资源竞争:多个goroutine同时竞争同一块内存时,就无法知晓谁先访问,结果也无法预料。 所以,我们需要确保共享内存资源,只有一个协程执行能够操作。
121 0