編寫第一個Go程序

編碼格式

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

// 單行註釋

/*
   多行註釋
*/

編寫 Hello World

一、建立文件 hello.go,不寫入任何內容。運行 go build hello.go 命令進行編譯。將會輸出以下錯誤:
can't load package: package main: 
hello.go:1:1: expected 'package', found 'EOF'

由於Go語言中,全部文件必須隸屬於某一個包。須要在文件的頭部聲明一個package name,其中package爲關鍵字,name爲包名。blog

二、在hello.go文件中添加一條語句,以後從新進行編譯。

添加內容以下:遞歸

package main

執行編譯,將會輸出以下錯誤:get

runtime.main_main·f: relocation target main.main not defined
runtime.main_main·f: undefined: "main.main"

由於Go程序啓動時,須要在文件中有一個可標識入口。Go程序的入口函數是main函數。編譯器

三、在hello.go文件中添加另一行,而且重試。

添加內容以下:

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 函數開始執行程序。

相關文章
相關標籤/搜索