必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。
package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。
main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)。
当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);
标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 protected )。
Go 程序中,一行代表一个语句结束,每行语句不需要以分号 ; 结尾。因为这些工作都将由 Go 编译器自动完成。
如果将多个语句写在同一行,必须使用 ; 人为区分,但在实际开发中我们并不鼓励这种做法。
变量声明:
第一种,指定变量类型,声明后若不赋值,使用默认值。
var v_name v_type
v_name = value
第二种,根据值自行判定变量类型。
var v_name = value
第三种,省略 var, 注意 := 左侧如果没有声明新的变量,就产生编译错误,格式:
v_name := value
基本类型(int、float、bool 和 string)都属于值类型,使用这些类型的变量直接指向存在内存中的值;
值类型的变量的值存储在栈中。
在定义变量 a 之前使用它,会得到编译错误:undefined: a
声明了一个局部变量 a 却没有在相同的代码块中使用它,会得到编译错误:a declared and not used
全局变量:允许声明但不使用
空白标识符 _ 也被用于抛弃值,如值 5 在:, b = 5, 7 中被抛弃。 实际上是一个只写变量,你不能得到它的值。
go 支持分组定义:变量、常量、类型