Go是编译型的语言,Go的工具链会将程序的源文件转变成机器相关的原生二进制指令。
最简单的子命令:run
它将一个或多个以.go为后缀的源文件进行编译、链接,然后运行生成的可执行文件
go run hello.go
如果这个程序不是一次性实验,那么编译出一个可复用的程序,通过 go build实现。
go build hello.go
这条命令生成了一个名为hello的二进制程序
执行:
./hello
换行
Go不需要再语句或声明后使用分号结尾,除非有多个语句出现在同一行。
事实上,跟在特定符号后面的换行符被转换为分号,在什么地方换行会影响代码解析。
例如:
“{” 和 func 必须在同一行;
在x+y中,只能在+后换行
命令行参数
命令行参数以os包中的Args的变量供程序访问,在包外使用os.Args。
os.Args是一个字符串slice(动态容量的顺序数组),可以通过os.Args[i]访问单个元素
os.Args[0]是命令本身的名字,另外的元素是程序开始执行时的参数,也就是os.Args[1:]
在Go中,所有索引使用半开区间,即包含第一个索引,不包含最后一个索引
循环
for是Go里面唯一的循环语句
//第一种传统方式
for init;condition;post{
//语句
}
//第二种方式:遍历数组等
for index,arg := os.Args[1:]{ //index为索引,arg为元素值
//语句
}
若有用不到的参数,以"_"表示,Go中不允许存在无用的临时变量
递增语句i++
递减语句i- -
这些是语句,不是表达式,且仅支持后缀,所以j=i++,–i 等类似语句不合法
变量声明
s := "" //函数内部使用,无法用于包变量
var s string