golang基础|青训营笔记

98 阅读2分钟

变量

声明

var 变量名 变量类型

比如

var name string
var age int
var isOk bool

批量声明

var (
a string
b int
c bool
)

变量的初始化

var 变量名 类型 = 表达试

比如

var name string = "lvlanbing"
var age int = 18
or
var name, age = "lvlanbing", 18

有时候我们会将变量的类型省略,这个时候编译器会根据等号右边的值来推导变量的类型完成初始化。

短变量声明

n := 100
name := "lvlanbing"

常量

把变量初始化中的var替换成const

类型

需要注意的类型 array, struct(可以当作class使用), slice, map, channel, interface, function.
没有对象,接口就是一个类型。

array

数组是同一种数据类型的固定给长度序列。其中长度也是数组类型的 一部分。

var arr0 [5]int = [5]int{1, 2, 3}
var arr1 = [5]int{1, 2, 3, 4, 5}
var arr2 = [...]int{1, 2, 3, 4, 5, 6}
var str = [5]string{3: "hello world", 4: "tom"}

切片Slice

slice 并不是数组或数组指针。它通过内部指针和相关属性引用数组片段,以实现变长方案.
切片是数组的一个引用,因此切片是引用类型。但自身是结构体,值拷贝传递。(我们可以获取切片的最大容量等数据)
切片长度可以改变,是一个可变的数组
切片的定义:var 变量名 []类型,比如 var str []string var arr []int
可以通过make来创建切片

    var slice []type = make([]type, len)
    slice  := make([]type, len)
    slice  := make([]type, len, cap)

用append内置函数操作切片

指针

区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算,是安全指针。
Go语言中的指针操作非常简单,只需要记住两个符号:&(取地址)和*(根据地址取值)。

map

map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。

    map[KeyType]ValueType