我的博客:https://baoyu-11.github.io/ (博客中有更多的信息,希望能给您带来帮助)
前言
go语言属于强类型语言,我们先了解一下它的基础数据类型
一.go基础数据类型
1.数字类型
(1)整形(int、unit)
(2)浮点型(float32、float64)
(3)其他(byte(类似unit8)、rune(类似int32)等字符串类型)
2.派生类型
(1)指针类型(Pointer)
(2)数组类型(Array)
(3)结构类型(Struct)
(4)管道类型(Channel)
(5)函数类型(Function)
(6)切片类型(Slice)
(7)接口类型(interface)
(8)Map类型(Map)
二.go基础数据类型详解
1.整形:整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、uint32、uint64
其中,uint8就是我们熟知的byte型,int16对应C语言中的short型,int64对应C语言中的long型。(注意: 在使用int和 uint类型时,不能假定它是32位或64位的整型,而是考虑int和uint可能在不同平台上的差异。)
2.浮点型:Go语言支持两种浮点型数:float32和float64。这两种浮点型数据格式遵循IEEE 754标准: float32 的浮点数的最大范围约为 3.4e38,可以使用常量定义:math.MaxFloat32。 float64 的浮点数的最大范围约为 1.8e308,可以使用一个常量定义:math.MaxFloat64。
3.复数:复数有实部和虚部,complex64的实部和虚部为32位,complex128的实部和虚部为64位。
4.布尔值:Go语言中以bool类型进行声明布尔型数据,布尔型数据只有true(真)和false(假)两个值。(注意:(1)布尔类型变量的默认值为false(2)Go 语言中不允许将整型强制转换为布尔型(3)布尔型无法参与数值运算,也无法与其他类型进行转换)
5.字符串:Go语言中的字符串以原生数据类型出现,使用字符串就像使用其他原生数据类型(int、bool、float32、float64 等)一样。 Go 语言里的字符串的内部实现使用UTF-8编码。 字符串的值为双引号(“)中的内容,可以在Go语言的源码中直接添加非ASCII码字符
类型转换
Go语言中只有强制类型转换,没有隐式类型转换。该语法只能在两个类型之间支持相互转换的时候使用。
强制类型转换的基本语法如下:
T(表达式)
其中,T表示要转换的类型。表达式包括变量、复杂算子和函数返回值等.
比如计算直角三角形的斜边长时使用math包的Sqrt()函数,该函数接收的是float64类型的参数,而变量a和b都是int类型的,这个时候就需要将a和b强制类型转换为float64类型。
func sqrtDemo() {
var a, b = 3, 4
var c int
// math.Sqrt()接收的参数是float64类型,需要强制转换
c = int(math.Sqrt(float64(a*a + b*b)))
fmt.Println(c)
}
本文作者: 鲁宝玉
本文链接: https://baoyu-11.github.io/2020/11/18/go%E7%9A%84%E5%9F%BA%E7%A1%80%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
![]()
