开发者学堂课程【Go 语言核心编程 - 基础语法、数组、切片、Map :基本数据相互转换】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/625/detail/9529
基本数据相互转换
目录
一、基本类型
二、基本语法
一、基本介绍
Golang 和 java/c 不同,Go 在不同类型的变量之间赋值时需要显式转换。即Golang 中数据类型不能自动转换。
Golang 中数据类型不论是低精度到高精度或高精度到低精度都需要显示转换,即所谓的强制转换。
二、基本语法
1.定义
表达式 T(v)将值 v 转换为类型 T
T:数据类型,比如 int32,int64,float32等等
v:需要转换的具体变量
2.案例演示
package main
import (
"fmt"
)
//演示golang中基本数据类型的转换
func main() {
var i int32 =100
//希望将i => float
//直接写入var n1 float32 = i将会报错,即不可将int32交给float32类型,需进行转化
var n1 float32 = float32(i)
//使用fmt
fmt.Printf("i=%v n1=%v
,
i,n1)
输出结果:
i=100 n1=100
//此时的n1类型为float类型
//需要将i转换成int8交给n2
var n2 int8 = int8(i)
fmt.Printf("i=%v n1=%v n2=%
,
i ,n1
,
n2
)
输出结果:
i=100 n1=100 n2=100
前面写上 type 后面写上转换的变量即可.想把i转换成什么类型前面就写什么类型,前后需要保持一致。
//演示 golang 中基本数据类型的转换
func main() {
var i int32 =100
//希望将i => float
var n1 float32 = float32(i)
fmt.Printf("i=%v n1=%v
,
i,n1)
var n2 int8 = int8(i)
输出结果:
i=100 n1=100 n2=100
//将 i 交给 int64位在众多编程语言中是可行的,其可理解为低精度->高精度。但由于Golang中数据类型不论是低精度到高精度或高精度到低精度都需要强制显示转换,其仍会报错。故同样需要进行转换
var n3 int64 = int64(i)
fmt.Printf("i=%v n1=%v n2=%v n3=%v", i ,n1
,
n2,na)
}
3.基本用法
(1)定义
前方输入 type(欲转换的类型),后方输入欲转换的变量
(2)例子
var n1 float32 = float32(i)中 float 需保持一致