基础语法
变量
Go 语言变量名由字母、数字、下划线组成其中首个字符不能为数字
声明变量的形式一般使用var关键字,且类型在变量之后:
var identifier type
也可以申明多个变量:
var indentifier1, indentifier2 type
变量申明
变量声明第一种是为初始化的,变量默认为零:
var v_name v_type
v_name = value
-
数值类型(包括complex64/128)为 0
-
布尔类型为 false
-
字符串为 "" (空字符串)
-
以下几种类型为 nil:
var a *int
var a []int
var a map[string] int
var a chan int
var a func(string) int
var a error // error 是接口
第二种是根据值自行判定数据类型的
var v_name = value
第三种是不需要var关键字声明,并且可以根据值自行判定数据类型
v_name := value
常量
常量是一个简单值的标识符,在程序运行时,不会被修改的量。
常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
常量的定义格式:
const identifier [type] = value
你可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。
-
显式类型定义:
const b string = "abc" -
隐式类型定义:
const b = "abc"
结构体
Go语言中数组是同一类型数据的集合,但结构体可以是不同结构的集合,可以用来表示一个实体的所有属性
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合
其定义结构如下:
type struct_variable_type struct {
member definition
member definition
...
member definition
}
变量声明如下:
variable_name := structure_variable_type {value1, value2...valuen}
或
variable_name := structure_variable_type { key1: value1, key2: value2..., keyn: valuen}
切片(Slice)
Go语言中切片是对数组的抽象
与数组不同的是,Go 中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。
切片的定义
var identifier []type
或
slice1 := make([]type, len)
切片初始化
s :=[] int {1,2,3 }
直接初始化切片,[] 表示是切片类型>
s := arr[:]
初始化切片 s,是数组 arr 的引用。
s := arr[startIndex:endIndex]
将 arr 中从下标 startIndex 到 endIndex-1 下的元素创建为一个新的切片。
其余部分的切片用法此处不再举例可自行查找菜鸟教程
切片的增加和复制调用append()和copy()函数即可
Map(集合)
Go语言Map的设计基于哈希表,Map 是一种无序的键值对的集合。
Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。
Map是一种集合,与上面的切片非常相似,不过,map是一种无序的集合,即返回的键值顺序是不确定的。
Map 是引用类型,如果将一个 Map 传递给一个函数或赋值给另一个变量,它们都指向同一个底层数据结构,因此对 Map 的修改会影响到所有引用它的变量。
定义 Map
可以使用内建函数 make 或使用 map 关键字来定义 Map:
/* 使用 make 函数 */
map_variable := make(map[KeyType]ValueType, initialCapacity)
map的遍历,删除,修改操作可查看菜鸟教程
此文章只本人对Go语言数据类型的个人总结,并不全面,希望对各位有所帮助。