一 关键字
关键字一共25个,都是小写。
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough ifrange type
continue for import return var
二 Go程序的一般结构
1. Go程序是通过package来组织的。
2. 只有package名称为main的包可以包含main函数。
3. 一个可执行程序有且仅有一个main包。
4. 通过import关键字来导入其它非main包。
5. 通过const关键字来进行常量的定义。
6. 通过函数体外部使用var关键字来进行全局变量的声明与赋值。
7. 通过type关键字来进行结构(struct)或接口(interface)的声明。
8. 通过func关键字来进行函数的声明。
9. Go语言注释两种“//"和”/* */“
一个例子
//当前程序的包名
package main
//导入其它的包
import (
"flag"
"fmt"
"os"
)
//常量定义
const PI = 3.14
//全局变量的声明与赋值
var name = "go"
//一般类型的声明
type intType int
//结构声明
type newType struct {
}
//接口声明
type newInterface interface {
}
//main函数,程序的入口
func main() {
fmt.Println(os.Args)
flag.Parse()
fmt.Println(flag.Args())
}
三 导入包
导入包有两种写法。第一种写法如下:
import "flag"
import "fmt"
import "os"
另一种写法如下:
import (
"flag"
"fmt"
"os"
)
导入包之后,使用<PackageName>.<FuncName>来对包中的函数进行调用。导入包之后,如果没有使用包中的函数或类型,那么编译报错。这是为快速编译做的一个检查。(应该是这样不需要编译用不到的包,编译速度会快一些)。
导入的包可以重命名,如:import std "fmt",可以使用std.<FuncName>来调用包“fmt"中的函数。
将包名重命名为”.",还可以省略调用,如:import . "fmt",就可以直接使用函数名来调用。不建议使用,容易混淆。
省略调用和别名不可同时使用。
四 可见性规则
Go语言中,使用大小写来决定该常量、变量、类型、接口、结构或函数是否可以被外部包所调用:
根据约定,函数名首字母小写即为private,函数名首字母大写即为public。
五 组
常量组
const {
PI = 3.14
const1 = "1"
const2 = 2
const3 = 3
}
var组,var组只能声明全局变量,不能声明局部变量
var {
name = "go"
name1 = 1
name2 = 2
}
type组
type {
type1 int
type2 double
type3 string
}