Package strconv
import "strconv"
func ParseInt
func ParseInt(s string, base int, bitSize int) (i int64, err error)
ParseInt 解释给定基数(0、2 到 36)和位的字符串 s
size(0到64)并返回对应的值i。
如果 base == 0,则字符串前缀暗示了 base:base 16 for
“0x”,“0”以 8 为基数,否则以 10 为基数。对于基数 1,低于 0 或
36以上返回错误。
bitSize 参数指定结果必须是整数类型
适合。位大小 0、8、16、32 和 64 对应于 int、int8、
int16、int32 和 int64。对于低于 0 或高于 64 的 bitSize,错误是
返回。
ParseInt 返回的错误具有具体类型 *NumError 和
包括 err.Num = s。如果 s 为空或包含无效数字,则 err.Err
= ErrSyntax,返回值为0;如果对应于 s 的值不能用给定大小的有符号整数表示,则 err.Err
= ErrRange,返回值是相应bitSize和符号的最大幅度整数。
例如,
package main
import (
"fmt"
"strconv"
)
func main() {
i64, err := strconv.ParseInt("10", 10, 8)
if err != nil {
panic(err)
}
fmt.Printf("%[1]d %[1]T\n", i64)
i8 := int8(i64)
fmt.Printf("%[1]d %[1]T\n", i8)
}
游乐场:https://play.golang.org/p/HSHtUnC7qql
输出:
10 int64
10 int8
在 Go 中,我们经常使用函数来隐藏实现细节。
例如,
package main
import (
"fmt"
"strconv"
)
func ParseInt8(s string, base int) (int8, error) {
i64, err := strconv.ParseInt(s, base, 8)
return int8(i64), err
}
func main() {
i8, err := ParseInt8("10", 10)
if err != nil {
panic(err)
}
fmt.Printf("%[1]d %[1]T\n", i8)
}
游乐场:https://play.golang.org/p/HdA3O71U54z
输出:
10 int8