自学Go---和C++的不同之处
前言
经由学长引荐,得到了可以学习Go的机会。Go是未来的一门趋势,有望取代目前互联网Java的地位。后端开发需学
本人主要在菜鸟教程上进行学习
Go语言数据类型
数据类型指定有效的Go变量可以保存的数据类型。在Go语言中,类型分为以下四类:
1、基本类型:数字,字符串和布尔值属于此类别。
2、聚合类型:数组和结构属于此类别。
3、引用类型:指针,切片,map集合,函数和Channel属于此类别。
4、接口类型
基本类型
在Go语言中,数字分为三个子类别:整数,浮点数,布尔类型
整数
在Go语言中,有符号和无符号整数都可以使用四种不同的大小,如下表所示。有符号的int由int表示,而无符号的整数由uint表示。
数据类型 描述
int8 8位有符号整数
int16 16位有符号整数
int32 32位有符号整数
int64 64位有符号整数
uint8 8位无符号整数
uint16 16位无符号整数
uint32 32位无符号整数
uint64 64位无符号整数
int in和uint都包含相同的大小,无论是32位还是64位。
uint in和uint都包含相同的大小,无论是32位还是64位。
rune 它是int32的同义词,也表示Unicode代码点。
byte 它是int8的同义词。
uintptr 它是无符号整数类型。它的宽度未定义,但是可以容纳指针值的所有位。
1 | // 使用整数 |
与C++不同的是整数类型基本都是int附带位数,除此之外还有同Java相同的byte类型,以及新增的rune,uintptr
浮点数
同理,在Go中使用float32与float64代表浮点数,float64等同于c++中的double。
复数
在Go中增加了复数
将复数分为两部分,如下表所示。float32和float64也是这些复数的一部分。内建函数从它的虚部和实部创建一个复数,内建虚部和实部函数提取这些部分。
数据类型 描述
complex64 包含float32作为实数和虚数分量的复数。
complex128 包含float64作为实数和虚数分量的复数。
1 | //复数的使用 |
Go语言变量
Go语言变量的声明十分有意思,有两种方式:
var关键字声明
(var variable_name type = expression)
在上述语法中,类型(type) 或=表达式可以删除,但不能同时删除变量声明中的两个。
如果删除了类型,则变量的类型由表达式中的值初始化确定。
1 | //变量的概念 |
如果删除了表达式,则该变量的类型为零,数字为零,布尔值为false,字符串为“”,接口和引用类型为nil。因此,在Go语言中没有这样的未初始化变量的概念。
短变量声明
(Myint :=100)
使用(:=)
可达成既声明又复制的效果,在一般的变量声明中通常都使用这种方法。
##短声明智能声明局部变量,不可声明全局变量##