golang属于静态强类型语言.
静态语言是指变量使用前必须声明变量的类型,一旦声明了就必须严格遵守声明的类型,不能再进行修改.
强类型语言是不同类型的变量相互操作的时候需要显示转换.而弱类型语言可以自动隐式转换.
一,数值之间的转换
基本语法:
表达式T(v)将值v转换成类型T
* T就是数据类型,比如int32, int64, float32等
* v就是要转换的值
基本数据类型转换需要注意的事项
- golang中,数据类型的转换可以从范围小的-->范围大的,也可以从大到小
- 被转换的是转换表达式的值,变量本身的数据类型不变
比如a是int32, float32(a)这个表达式的值变成float32, a还是int32 - 从大到小的转换,如int64的值256转换成int8,编译的时候不会报错,但是转换的结果会溢出,得到一个我们不期望的结果,应该尽量避免.
练习:
二, 基本类型和字符串之间的转换.
在程序开发中,我们经常需要将基本数据类型转换成string或者将string转换成其他基本数据类型.
1. 基本类型转string类型
-
方式1: fmt.Sprintf("%参数", 表达式) 个人常用这个方式.
输出:
str type string str="99"
str type string str="23.456000"
str type string str="true"
str type string str="h'" -
使用strconv包的函数.
FormatInt的第一个参数是int64类型,第二个参数指转成10进制
FormatFloat第一个参数是float64类型,第二个参数是转换后的格式,第三个参数是精度,第4个参数是传入的值是float64.
还有一个函数strconv.Itoa(I int),把int转换成string
2. string类型转其他基本类型
上边的函数都返回两个值,转换的结果和错误信息.返回的int和float都是64位
代码:
string 转基本数据类型的注意事项:
在将 String 类型转成 基本数据类型时,要确保 String 类型能够转成有效的数据,比如 我们可以 把 "123" , 转成一个整数,但是不能把 "hello" 转成一个整数,如果这样做,Golang 直接将其转成 0 , 其它类型也是一样的道理.转不成功就转换成默认值. float => 0 bool => false