跳过安装环节
编写第一个go程序,输出”hello wolrd”
package main
import (
"fmt"
)
func main() {
fmt.Print("hello wolrd")
}
所有的.go文件中都有一个package关键字,用来声明文件在哪个包下
main中的main函数,编译后会成为一个可执行文件,作为程序的入口
import关键字用来导入包
声明变量
Go语言中的变量名的定义建议用小驼峰式命名
标准声明变量的格式
var 变量名 变量类型
批量声明变量
var (
a string
b int
c bool
d float32
)
Go语言中的非全局变量声明后必须使用,不使用编译不通过,全局变量声明后可以不使用
变量声明的同时赋值
var s1 string = "dong"
var s1 = "dong"
简短变量命名(只可以在函数中使用)
ss := 123
匿名变量
在使用多重赋值时,如果想要忽略某一个值时,可以使用匿名变量,匿名变量用 _ 表示
匿名变量不占用命名空间,不分配内存,所以不存在重复声明
a, _ := 1, 2
常量
常量的关键字const
const a = 100
批量常量声明
const (
a = 1
b = 2
c = 3
d = 4
)
常见问题
const (
a = 1 //1
b //1
c //1
d //1
)
在此代码中b,c,d的值都为零
在批量定义常量时,如果没有给常量赋值,那么他的值就和上一行的值相同
Iota
Iota关键字在const出现后重置为零,const中每新增一行,iota就会计数一次每次+1,(iota可以理解为是,const语句块的索引)使用iota可以简化定义,在定义枚举时很有用
举例
const (
a = iota //0
b //1
c //2
d //3
)
在const中使用iota不会受到_的影响
const (
a = iota //0
b //1
_ //2
d //3
)
可不会受到赋值的影响
const (
a = iota //0
b = 100 //100
c = iota //2
d //3
)
每一行中iota的值都是相同的
const (
a1,a2 = iota+1,iota+2 //a1 = 1,a2 = 2
b1,b2 = iota+1,iota+2 //b1 = 2,b2 = 3
)
定义数量级(<<符号为二进制左右符号)
const (
KB = 1 << (10 * iota)
MB = 1 << (10 * iota)
GB = 1 << (10 * iota)
TB = 1 << (10 * iota)
PB = 1 << (10 * iota)
)