开发者学堂课程【Go语言核心编程 - 基础语法、数组、切片、Map:string 转基本数据类型)】与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/625/detail/9533
string 转基本数据类型
内容介绍:
一、使用 strconv 包的函数
二、基本数据类型转 string 类型
三、strconv 包的函数案例演示
一、使用 strconv 包的函数
1.使用场景
当开发中遇到 string 数据类型转化为基本数据类型的场景时,将会出现使用strconv包函数的情况。
其中,部分编程语言是较为简单的,直接用‘加’或简答操作便能进行转化。但在go语言情况下的转换都将使用到函数。
(具体函数的介绍部分将会在后续进行讲解)
2.函数列举
以下函数在手册中查找
(1)func ParseBool(str string) (value bool, err error)
(2)func ParseFloat(s string, bitSize int)(f float64, err error)
(3)func ParseInt(s string, base int, bitSize int) (i int64, err error)
(4)func ParseUint(s string, b int, bitSize int) (n uint64, err error)
二、基本数据类型转 string 类型
1.函数介绍
Func itoa(I int) string 此函数可以直接将 int 转成字符串
Strconv 包中含有函数 Itoa
2.实例
1.假如int=4567
Var num5 int = 4567
Str = strconv.Itoa(num5)
//以上过程中仅实现了 num5内含值向 string 的转化,但 num5本身仍为 int
Fmt.Printf(“str type %T str=%q\n”,str,str)
输出结果:str type string str=”4567”
2.假如int=64
Var num5 int64 = 4567
Str = strconv.Itoa
(int(
num5))
Fmt.Printf(“str type %T str=%q\n”,str,str)
//由于64无法传输给int,则此时系统有概率进行报错。为解决其问题,进行转换操作:将 Itoa(num5)更改为 Itoa(int(num5))
三、strconv包的函数案例演示
1.string转成基本数据类型
//演示 golang 中 string 转成基本数据类型
func main() {
var str string = "true"
//将 true 值转为 bool 值
var b bool
//引入函数PassBool
b
,_
= strconv. ParseBool(str)
//strconv.ParseBool(str)
函数将会返回两个值(value bool、err error)
//由于此时只欲获取 value bool 值 ,故使用_进行忽略 err操作
b , _ = strconv.ParseBool(str)
//输出b的类型与值
fmt.Printf("b type %T
b=%v
,
b, b)
输出结果: b type bool b=true
2.str类型转化为int类型
1.int内的参数
1str string(即字符串本身)
1base int(代表转换为相应的进制。如书写2后代表2进制)
1bitSize int(bitSize指定结果必须能无溢出赋值的整数类型,0、8、16、32、64分别带代表 int、int8、int16、int32、int64,即书写0后转为int)
2.例子
var str2 string = "1234590”
var n1 int64
var n2 int
n1,_= strconv.ParseInt(str2,10,64)
n2 = int(n1)
fmt.Printf( "n1 type %T n1=%v\n", n1
,
n1)
输出结果:
n1 type int64 n1=1234590
fmt.Printf( "n2 type %T n2=%v\n", n2,n2)
输出结果:
n2 type int n2=1234590
//两结果相同
3.str类型转为float类型
1.float内的参数
1s string(字符串)
1bitSize(一般为32或64,float类型在golong中仅此两种)
floast与bool同样返回两个值,分别为转换后的float64、error。
2.实例
var str3 string = "123.456”
var f1 float64
f1, _= strconv.ParseFloat(str3,64)
fmt.Printf( "f1 type %T f1=%v\n",f1
,
f1)
输出结果: f1 type float64 f1=123.456
4.说明
(1)案例演示
若返回的是int64或float64类型,则必须使用同种类型进行接收。此时若欲得到int32 、float32,则将进行如下的转换处理:
var num5 int32
num5 = int32(nu
m
)
(2)Go 语言特点
以上示例再次体现出 golong 语言的严谨特点:即强制进行部分操作。若此前学习过 Java 或者动态脚本语言:php、python 等将会认为此部分较为麻烦。但 Go 语言的本质目的仍是欲使语言更加严谨。