上篇:GO——学习笔记(一)
下篇:GO——学习笔记(三)
参考:
https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/02.2.md
示例代码——go_1
https://github.com/jiutianbian/golang-learning/blob/master/go_1/main.go
一、go基础——关键字
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
二、go基础——变量与常量
-
定义变量
//变量申明与赋值分离 var a string //定义变量名为a的一个string字符串 a = "nihao,wo shi a" //给变量a赋值 //变量申明与赋值一起 var b string = "nihao,wo shi b" //定义变量名为b的一个string字符串,直接赋值 //多个变量申明与赋值 var c, d string = "nihao,wo shi c", "nihao,wo shi d" //一起定义c和d两个字符串,并赋值 //省略变量类型 var e, f = "nihao,wo shi e", "nihao,wo shi f" //省略了变量类型,编译器会用相应值的类型来帮你初始化它们 //省略变量类型和 var关键字 g, h := "nihao,wo shi g", "nihao,wo shi h" //省略了var关键字和类型,通过:=来赋值,这边不能用=号,编译器会根据初始化的值自动推导出相应的类型
-
定义常量
//定义常量 const HELLO = "NIHAO"
三、go基础——go的基础类型
基础类型
-
Boolean
//定义Boolean型 var isWoking bool = true
数值类型
Go里面定义的整型有:rune, int8, int16, int32, int64和byte, uint8, uint16, uint32, uint64。其中rune是int32的别称,byte是uint8的别称
Go里面定义的浮点类型有float32和float64
Go里面定义的复数类型有complex64
//定义数值类型
var i int = 1 //整型
var j float32 = 6.3 //浮点类型
var k float64 = 5.4
//定义复数类型
var l complex64 = 5 + 5i
- 字符串类型
上面go基础——变量与常量中所有的变量和常量都是字符串类型
错误类型
//定义错误类型
err := errors.New("chu cuo le,da xiong di")
array、slice、map类型
- array 类型
array类型,即是数组
//定义 array变量
var arr_1 [3]int = [3]int{1, 2, 3}
arr_2 := [...]int{4, 5, 6}
- slice 类型
array类型,自以为是动态数组,如果有过object-c开发经验的,slice与array就相当于 object-c里面的nsmutablearray与nsarry的区别
//定义 slice变量,与arry相比少了固定长度的申明
var slice_1 []int = []int{1, 2, 3} //直接初始化
slice_2 := arr_1[0:2] //从数组中直接截取
slice_3 := slice_2[0:1] //从slice中直接截取
- map 类型
map类型,键值对,字典,类似java中的hash map,object-c中的nsmutableobject
// 声明一个key是字符串,值为字符串的字典,这种方式的声明需要在使用之前使用make初始化
var map_1 map[string]string
// 另一种map的声明方式
map_1 = make(map[string]string)
map_1["one"] = "one"
map_1["two"] = "two"
map_1["three"] = "three"