从这里学习
https://golangcaff.com/docs/build-web-application-with-golang
1.GO的25个关键字
break default func interface selectcase
defer go map struct chan else goto package
switchconst fallthrough if range typecontinue
for import return var
配置环境
定义变量规则:
使用 var 关键字是 Go 最基本的定义变量方式,与 C 语言不同的是 Go 把变量类型放在变量名后面:
// 定义一个名称为 “variableName”,类型为 "type" 的变量
var variableName type
定义多个变量
// 定义三个类型都是 “type” 的变量
var name1 name2 name3 type
//定义变量并且初始化值
var name1 type = value
//同时初始化 多个变量
/*
定义三个类型都是 "type" 的变量, 并且分别初始化为相应的值
vname1 为 v1,vname2 为 v2,vname3 为 v3
*/
var vname1,vname2 vname3 type = v1,v2,v3
/*
定义三个变量,它们分别初始化为相应的值
vname1 为 v1,vname2 为 v2,vname3 为 v3
然后 Go 会根据其相应值的类型来帮你初始化它们
*/
简单写法
var vname1,vname2,vname3 = v1,v2,v3
继续简化写法
vname1,vname2,vname3 := v1,v2,v3
常量定义 const
bool 默认为false
数值类型
字符串 GO的字符串是不可变的
iota 枚举型
Go 里面有一个关键字 iota,这个关键字用来声明 enum 的时候采用,它默认开始值是 0,const 中每增加一行加 1
const{
x = iota //x = 0;
y = iota // y =1;
z = iota // z= 2;
w // 常量声明省略值时,默认和之前一个值的字面相同。这里隐式地说 w = iota,因此 w == 3。其实上面 y 和 z 可同样不用 "= iota"
}
const v = iota // 每遇到一个 const 关键字,iota 就会重置,此时 v == 0
const ( h, i, j = iota, iota, iota // h=0,i=0,j=0 iota在同一行值相同)
const (
a = iota // a=0
b = "B"
c = iota //c=2
d, e, f = iota, iota, iota //d=3,e=3,f=3
g = iota //g = 4
)
Go 程序设计的一些规则
大写字母开头的变量是可导出的,也就是其它包可以读取的,是公有变量;小写字母开头的就是不可导出的,是私有变量。
大写字母开头的函数也是一样,相当于 class 中的带 public 关键词的公有函数;小写字母开头的就是有 private 关键词的私有函数。
array 表述数组
var arr [n]type
在 [n]type 中,n 表示数组的长度,type 表示存储元素的类型。对数组的操作和其它语言类似,都是通过 [] 来进行读取或赋值:
slice 动态数组
slice 有一些简便的操作
slice 的默认开始位置是 0,ar[:n] 等价于 ar[0:n]
slice 的第二个序列默认是数组的长度,ar[n:] 等价于 ar[n:len(ar)]
如果从一个数组里面直接获取 slice,可以这样 ar[:],因为默认第一个序列是 0,第二个是数组的长度,即等价于 ar[0:len(ar)]
map
make new 操作
零值
有疑问加站长微信联系(非本文作者)