Go语言源码文件编码格式必须是 UTF-8
格式,不然会致使编译器出错。函数
在 Go 程序中,一行表明一个语句结束。每一个语句不须要像其它语言同样以分号 ";"
结尾,由于这些工做都将由 Go 编译器自动完成。ui
若是你打算将多个语句写在同一行,它们则必须使用 ";"
人为区分。实例以下:编码
package main import ( "fmt" ) func main() { fmt.Println("oldboy") fmt.Println("Linux"); fmt.Println("Java");fmt.Println("DBA") fmt.Println("Python");fmt.Println("Golang"); }
注释不会被编译,每个包应该有相关注释。spa
Go语言代码注释支持 "//"、"/**/"
两种注释方式,不能嵌套。 建议用单行注释 // 源码里也是这么用的code
单行注释是最多见的注释形式,你能够在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾。实例以下orm
// 单行注释 /* 多行注释 */
can't load package: package main: hello.go:1:1: expected 'package', found 'EOF'
由于Go语言中,全部文件必须隶属于某一个包。须要在文件的头部声明一个package name,其中package为关键字,name为包名。blog
添加内容以下:递归
package main
执行编译,将会输出以下错误:get
runtime.main_main·f: relocation target main.main not defined runtime.main_main·f: undefined: "main.main"
由于Go程序启动时,须要在文件中有一个可标识入口。Go程序的入口函数是main函数。编译器
添加内容以下:
package main
func main(){}
执行运行命令 go run hello.go
,程序正确执行并很快就退出了
到目前为止,咱们已经建立了本身的第一个程序。虽然没有功能,可是已经能够正常运行了。
package main func main(){ Println("hello world") }
执行编译,将会输出以下错误:
./hello.go:4:2: undefined: Println
由于Println函数存放在fmt包中。咱们程序中没有主动引入fmt包,因此编译器报未定义错误。
若是咱们须要使用这些包中的功能,首先须要import引入相应的包。包中的可导出组件能够经过 包名.组件名的方式进行调用。
函数Println和其它读写文本和字符的函数,都存放在一个叫作fmt的包中——formatting的缩写。
package main import "fmt" func main(){ fmt.Println("hello world") }
执行 go run hello.go 命令,运行程序。运行结果以下:
hello world
Go 程序启动执行顺序以下:
按顺序导入全部被 main 包引用的其它包,而后在每一个包中执行以下流程:
若是该包又导入了其它的包,则从第一步开始递归执行,可是每一个包只会被导入一次。
而后以相反的顺序在每一个包中初始化常量和变量,若是该包含有 init 函数的话,则调用该函数。
在完成这一切以后,main 也执行一样的过程,最后调用 main 函数开始执行程序。