6. 基本数据类型的相互转换

golang属于静态强类型语言.
静态语言是指变量使用前必须声明变量的类型,一旦声明了就必须严格遵守声明的类型,不能再进行修改.
强类型语言是不同类型的变量相互操作的时候需要显示转换.而弱类型语言可以自动隐式转换.

一,数值之间的转换

基本语法:

表达式T(v)将值v转换成类型T
* T就是数据类型,比如int32, int64, float32等
* v就是要转换的值


基本数据类型转换需要注意的事项

  1. golang中,数据类型的转换可以从范围小的-->范围大的,也可以从大到小
  2. 被转换的是转换表达式的值,变量本身的数据类型不变
    比如a是int32, float32(a)这个表达式的值变成float32, a还是int32
  3. 从大到小的转换,如int64的值256转换成int8,编译的时候不会报错,但是转换的结果会溢出,得到一个我们不期望的结果,应该尽量避免.

练习:

image.png
image.png

二, 基本类型和字符串之间的转换.

在程序开发中,我们经常需要将基本数据类型转换成string或者将string转换成其他基本数据类型.

1. 基本类型转string类型

  • 方式1: fmt.Sprintf("%参数", 表达式) 个人常用这个方式.


    image.png


    输出:
    str type string str="99"
    str type string str="23.456000"
    str type string str="true"
    str type string str="h'"

  • 使用strconv包的函数.


    image.png
image.png

FormatInt的第一个参数是int64类型,第二个参数指转成10进制
FormatFloat第一个参数是float64类型,第二个参数是转换后的格式,第三个参数是精度,第4个参数是传入的值是float64.
还有一个函数strconv.Itoa(I int),把int转换成string

2. string类型转其他基本类型

image.png

上边的函数都返回两个值,转换的结果和错误信息.返回的int和float都是64位
代码:


image.png

string 转基本数据类型的注意事项:
在将 String 类型转成 基本数据类型时,要确保 String 类型能够转成有效的数据,比如 我们可以 把 "123" , 转成一个整数,但是不能把 "hello" 转成一个整数,如果这样做,Golang 直接将其转成 0 , 其它类型也是一样的道理.转不成功就转换成默认值. float => 0 bool => false

你可能感兴趣的:(6. 基本数据类型的相互转换)