// 将布尔值转换为字符串 true 或 false
func FormatBool(b bool) string // 将字符串转换为布尔值
// 它接受真值:1, t, T, TRUE, true, True
// 它接受假值:0, f, F, FALSE, false, False
// 其它任何值都返回一个错误。
func ParseBool(str string) (bool, error) ------------------------------ // ErrRange 表示值超出范围
var ErrRange = errors.New("value out of range") // ErrSyntax 表示语法不正确
var ErrSyntax = errors.New("invalid syntax") // 将整数转换为字符串形式。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 表示 16 进制,前缀 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) // 将整数转换为十进制字符串形式(即:FormatInt(i, 10) 的简写)
func Itoa(i int) string // 将字符串转换为十进制整数,即:ParseInt(s, 10, 0) 的简写)
func Atoi(s string) (int, error) ------------------------------ // 示例
func main() {
fmt.Println(strconv.ParseInt("FF", , ))
// 255
fmt.Println(strconv.ParseInt("0xFF", , ))
// 0 strconv.ParseInt: parsing "0xFF": invalid syntax
fmt.Println(strconv.ParseInt("0xFF", , ))
// 255
fmt.Println(strconv.ParseInt("9", , ))
// 7 strconv.ParseInt: parsing "9": value out of range
} ------------------------------ // 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) string // 将字符串解析为浮点数,使用 IEEE754 规范进行舍入。
// bigSize 取值有 32 和 64 两种,表示转换结果的精度。
// 如果有语法错误,则 err.Error = ErrSyntax
// 如果结果超出范围,则返回 ±Inf,err.Error = ErrRange
func ParseFloat(s string, bitSize int) (float64, error) ------------------------------ // 示例
func main() {
s := "0.12345678901234567890" f, err := strconv.ParseFloat(s, )
fmt.Println(f, err)        // 0.12345679104328156
fmt.Println(float32(f), err)  // 0.12345679 f, err = strconv.ParseFloat(s, )
fmt.Println(f, err)        // 0.12345678901234568
} ------------------------------ // 判断字符串是否可以不被修改的表示为一个单行的反引号字符串。
// 字符串中不能含有控制字符(除了 \t)和“反引号”字符,否则返回 false
func CanBackquote(s string) bool // 示例:找出所有 !CanBackquote 的字符
func main() {
for i := rune(); i < utf8.MaxRune; i++ {
if !strconv.CanBackquote(string(i)) {
fmt.Printf("%q, ", i)
}
}
} // 结果如下:
// '\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\a', '\b', '\n', '\v', '\f', '\r', '\x0e', '\x0f', '\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17', '\x18', '\x19', '\x1a', '\x1b', '\x1c', '\x1d', '\x1e', '\x1f', '`', '\u007f', '\ufeff' ------------------------------ // 判断 r 是否为可打印字符
// 可否打印并不是你想象的那样,比如空格可以打印,而\t则不能打印
func IsPrint(r rune) bool // 判断 r 是否为 Unicode 定义的图形字符。
func IsGraphic(r rune) bool ------------------------------ // 示例:获取不可打印字符和非图形字符
func main() {
var rnp, rng, rpng, rgnp []rune
const maxLen =
for i := rune(); i < utf8.MaxRune; i++ {
if !strconv.IsPrint(i) { // 不可打印
if len(rnp) < maxLen {
rnp = append(rnp, i)
}
if strconv.IsGraphic(i) && len(rgnp) < maxLen { // 图形字符
rgnp = append(rgnp, i)
}
}
if !strconv.IsGraphic(i) { // 非图形字符
if len(rng) < maxLen {
rng = append(rng, i)
}
if strconv.IsPrint(i) && len(rpng) < maxLen { // 可打印
rpng = append(rpng, i)
}
}
}
fmt.Printf("不可打印字符  :%q\n", rnp)
fmt.Printf("非图形字符  :%q\n", rng)
fmt.Printf("不可打印图形字符:%q\n", rgnp)
fmt.Printf("可打印非图形字符:%q\n", rpng)
} // 不可打印字符  :['\x00' '\x01' '\x02' '\x03' '\x04' '\x05' '\x06' '\a' '\b' '\t' '\n' '\v' '\f' '\r' '\x0e' '\x0f' '\x10' '\x11' '\x12' '\x13' '\x14' '\x15' '\x16' '\x17' '\x18' '\x19' '\x1a' '\x1b' '\x1c' '\x1d' '\x1e' '\x1f']
// 非图形字符  :['\x00' '\x01' '\x02' '\x03' '\x04' '\x05' '\x06' '\a' '\b' '\t' '\n' '\v' '\f' '\r' '\x0e' '\x0f' '\x10' '\x11' '\x12' '\x13' '\x14' '\x15' '\x16' '\x17' '\x18' '\x19' '\x1a' '\x1b' '\x1c' '\x1d' '\x1e' '\x1f']
// 不可打印图形字符:['\u00a0' '\u1680' '\u2000' '\u2001' '\u2002' '\u2003' '\u2004' '\u2005' '\u2006' '\u2007' '\u2008' '\u2009' '\u200a' '\u202f' '\u205f' '\u3000']
// 可打印非图形字符:[] ------------------------------ // 将 s 转换为双引号字符串
func Quote(s string) string // 功能同上,非 ASCII 字符和不可打印字符会被转义
func QuoteToASCII(s string) string // 功能同上,非图形字符会被转义
func QuoteToGraphic(s string) string ------------------------------ // 示例
func main() {
s := "Hello\t世界!\n"
fmt.Println(s)            // Hello 世界!(换行)
fmt.Println(strconv.Quote(s))    // "Hello\t世界!\n"
fmt.Println(strconv.QuoteToASCII(s)) // "Hello\t\u4e16\u754c\uff01\n"
fmt.Println(strconv.QuoteToGraphic(s)) // "Hello\t世界!\n"
} ------------------------------ // 将 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) ------------------------------ // 示例
func main() {
s1 := "`Hello 世界!`"        // 解析反引号字符串
s2 := `"Hello\t\u4e16\u754c\uff01"` // 解析双引号字符串
fmt.Println(strconv.Unquote(s1))  // Hello 世界! <nil>
fmt.Println(strconv.Unquote(s2))  // Hello 世界! <nil> fmt.Println()
fmt.Println(strconv.UnquoteChar(`\u4e16\u754c\uff01`, ))
// 19990 true \u754c\uff01 <nil>
fmt.Println(strconv.UnquoteChar(`\"abc\"`, '"'))
// 34 false abc\" <nil>
} ------------------------------ // 将各种类型转换为字符串后追加到 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 AppendQuoteToASCII(dst []byte, s string) []byte
func AppendQuoteToGraphic(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 ------------------------------------------------------------

Golang学习 - strconv 包--数据类型转换的更多相关文章

  1. Golang学习 - strconv 包

    ------------------------------------------------------------ // 将布尔值转换为字符串 true 或 false func FormatB ...

  2. Golang学习 - reflect 包

    ------------------------------------------------------------ 在 reflect 包中,主要通过两个函数 TypeOf() 和 ValueO ...

  3. Golang学习 - bufio 包

    ------------------------------------------------------------ // bufio 包实现了带缓存的 I/O 操作 -------------- ...

  4. Golang学习 - io 包

    ------------------------------------------------------------ 先说一下接口,Go 语言中的接口很简单,在 Go 语言的 io 包中有这样一个 ...

  5. Golang学习 - sort 包

    ------------------------------------------------------------ // 满足 Interface 接口的类型可以被本包的函数进行排序. type ...

  6. Golang学习 - errors 包

    ------------------------------------------------------------ Go 语言使用 error 类型来返回函数执行过程中遇到的错误,如果返回的 e ...

  7. Golang学习 - bytes 包

    ------------------------------------------------------------ 对于传入 []byte 的函数,都不会修改传入的参数,返回值要么是参数的副本, ...

  8. Golang学习 - fmt 包

    ------------------------------------------------------------ // Print 将参数列表 a 中的各个参数转换为字符串并写入到标准输出中. ...

  9. Golang学习 - builtin 包

    Go builtin包提供了go预先声明的函数.变量等的文档.这些函数变量等的实现其实并不是在builtin包里,只是为了方便文档组织. 这些内置的变量.函数.类型无需引入包即可使用. 默认提供的有: ...

随机推荐

  1. js数组操作记录

    一 .splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目. arrayObject.splice(index,howmany,item1,.....,itemX) 参数 描述 in ...

  2. 解决mysql不是内部或外部命令

    安装Mysql后,当我们在cmd中敲入mysql时会出现'Mysql'不是内部或外部命令,也不是可运行的程序或其处理文件. 工具/原料 mysql cmd 方法/步骤 1 打开我的电脑在我的电脑右键中 ...

  3. oracle查看表空间下数据文件

    下面两个数据字典视图就知道了.查看有哪些表空间:select * from dba_tablespaces;查看有哪些数据文件在哪个表空间中:select * from dba_data_files; ...

  4. 配置shiro错误

    在web配置工程中配置shiro,如果启动Tomcat,报错:org.apache.shiro.web.config.WebIniSecurityManagerFactory.setDefaults ...

  5. linux_文件类型

    linux中文件类型? 在linux系统中一切(目录.普通文件.设备文件等)皆文件 d     目录 -      普通文件 l      链接文件 b     快设备和其他外网设备 普通文件: - ...

  6. java乱码详解(java中byte与char的转换)

    转自:http://hi.baidu.com/%C6%F3%D2%B5%BC%D2%D4%B0/blog/item/825a4858d6248e8b810a181a.html   java byte与 ...

  7. 自己模拟的一个简单的tomcat

    servlet容器的职责 总的来说,一个全功能的servlet容器会为servlet的每个HTTP请求做下面的一些工作: 1,当第一次调用servlet的时候,加载该servlet类并调用servle ...

  8. springMVC中使用POI方式导出excel至客户端、服务器实例

    Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 这里的方法支持导出excel至项目所在服务器,或导 ...

  9. 《struts2》:指定多个配置文件和默认Action

    转载:http://m.blog.csdn.net/article/details?id=51212968

  10. 【转】TCHAR

    TCHAR 就是当你的字符设置为什么就是什么例如: 当程序编译为    ANSI,    TCHAR 相当于 CHAR当程序编译为 UNICODE, TCHAR 相当于WCHAR char       ...