大部分资料来自于这里
关于变量
声明方式
1 | var a int = 1 |
关于常量
对于没有设定类型的常量,是没有类型的
比如说const i = 1
可以有var a int = i
或者var b int8=i
在需要的地方它才会转化类型,就像是字面常量一样
关于函数
函数可以有多个输出(此时需要用括号括起来),下划线_
可用来抛弃一些函数的返回值
1 | func f(a,b int)(c,d int){ |
此时c为3
1 |
|
进行包的初始化,init()
函数会在包内变量初始化完毕后执行
一个包可以有多个init()
,不管是在同一个文件内还是放在包内的不同文件中
即使被import多次,init()
也只会执行一次,
可以在包前面加入下划线,代表我们需要这个包的init()
,但是不一定在代码里用上这个包
1 | import _ "github.com/go-sql-driver/mysql" |
用下划线_
赋值包内函数或变量,则可以在开发时暂时禁用未使用包的错误,等真的使用的时候再删除
关于if
else和花括号必须在同一行,除非你用了分号
1 | if { |
或
1 | if { |
if内可以塞语句,语句会在条件判断前执行
1 | if x:=10;x>=10{ |
关于循环
for 内可以只塞条件,类似其他语言的while一样使用
没有条件代表无限循环
1 | for x==1 { |
关于switch
switch内可以塞语句,语句会在条件判断前执行
case中会自动在结尾加上break(对于不想自动添加break的,可以在那一段case内末尾加入fallthrough关键字)
1 | switch x:=1; x{ |
显式下厨break也不会报错,但是只会跳出switch判断,如
1 | x:=1 |
只会跳出break而不是for,依旧会无限循环下去
要跳出for,可以这样
1 | x:=1 |
case条件 不一定 是常量,switch为空的时候,匹配条件为true的
1 | switch { |