先从golang的Helloworld程序说起。
文件:helloworld.go
package main import "fmt" func main() { fmt.Println("Hello World") }
执行命令:go run helloworld.go,程序就会执行,输出:Hello World。
1、Go代码是用包(package)来组织代码的,包类似其他语言中的库或者模块,与java中的包概念很像,一个包下面有一个或者多个.go的源文件组成,一个包就是一个文件夹,文件夹的名字描述了该包的作用。
2、上面是一个简单的go程序,下面用一个稍微复杂的结构来说明go程序的主要构成
package main import ( "fmt" "math" "strconv" "time" ) type User struct { userName string age int borth time.Time } const ( HEIGHT int = 1 SIZE int = 10 PI float64 = math.Pi ) var City string var country string func main() { user := &User{userName: "xiaoming", age: 22, borth: time.Now()} fmt.Println(showName(user)) fmt.Println("Hello World") fmt.Println(PI) } func showName(user *User) string { if user == nil { return "Null" } return user.userName + "_" + strconv.FormatInt(int64(user.age), 10) + "_" + user.borth.Format("2006-01-02 15:04:05") }
(1)package就用来声明该源码所属的包
(2)import语句必须紧跟package语句之后,用来导入源码里面需要引用的其他包名,导入的包必须要被用到,否则编译会报错
(3)紧接着的是组成程序的类型(type)、变量(var)、常量(const)以及函数(func),大部分的情况下,声明的顺序没有要求
3、关于函数
函数是用func关键字、函数名、参数列表、返回值列表以及放在大括号内的函数体组成。
参数列表、返回值列表均可以为空
go支持多值返回,如:
func sumAndCount(age []int) (sum int64, count int) { return 100, 1 }
注意:在golang中‘{'左括号不能另起一行。
4、关于main包和main函数
main包比较特殊,它用来定义一个独立的可执行程序,而不是库,在main包中,main函数也是特殊的,它是程序执行开始的地方。