一牍汹、簡(jiǎn)述GO語(yǔ)言背景
- 軟件開(kāi)發(fā)的新挑戰(zhàn)
- 多核硬件架構(gòu)
- 超大規(guī)模分布式計(jì)算集群
- web模式導(dǎo)致的前所未有的開(kāi)發(fā)規(guī)模和更新速度
Wiki:https://github.com/golang/go/wiki
二揖庄、基本程序結(jié)構(gòu)
package main ///包聲明谒臼,表明代碼所在的模塊
import "fmt" ///引入包祷膳,引入代碼依賴(lài)
func main(){
fmt.Println("hello镊绪,world惰蜜!")
}
程序的各個(gè)部分:
- 第一行代碼 package main 定義了包名蝴蜓。你必須在源文件中非注釋的第一行指明這個(gè)文件屬于哪個(gè)包仅颇,如:package main鳄逾。package main表示一個(gè)可獨(dú)立執(zhí)行的程序,每個(gè) Go 應(yīng)用程序都包含一個(gè)名為 main 的包灵莲。
- 下一行 import "fmt" 告訴 Go 編譯器這個(gè)程序需要使用 fmt 包(的函數(shù)雕凹,或其他元素),fmt 包實(shí)現(xiàn)了格式化 IO(輸入/輸出)的函數(shù)政冻。
- 下一行 func main() 是程序開(kāi)始執(zhí)行的函數(shù)枚抵。main 函數(shù)是每一個(gè)可執(zhí)行程序所必須包含的,一般來(lái)說(shuō)都是在啟動(dòng)后第一個(gè)執(zhí)行的函數(shù)(如果有 init() 函數(shù)則會(huì)先執(zhí)行該函數(shù))明场。
- 下一行 fmt.Println(...) 可以將字符串輸出到控制臺(tái)汽摹,并在最后自動(dòng)增加換行字符 \n。
使用 fmt.Print("hello, world\n") 可以得到相同的結(jié)果苦锨。
Print 和 Println 這兩個(gè)函數(shù)也支持使用變量逼泣,如:fmt.Println(arr)趴泌。如果沒(méi)有特別指定,它們會(huì)以默認(rèn)的打印格式將變量 arr 輸出到控制臺(tái)拉庶。 - 當(dāng)標(biāo)識(shí)符(包括常量嗜憔、變量、類(lèi)型氏仗、函數(shù)名吉捶、結(jié)構(gòu)字段等等)以一個(gè)大寫(xiě)字母開(kāi)頭,如:Group1皆尔,那么使用這種形式的標(biāo)識(shí)符的對(duì)象就可以被外部包的代碼所使用(客戶(hù)端程序需要先導(dǎo)入這個(gè)包)呐舔,這被稱(chēng)為導(dǎo)出(像面向?qū)ο笳Z(yǔ)言中的 public);標(biāo)識(shí)符如果以小寫(xiě)字母開(kāi)頭慷蠕,則對(duì)包外是不可見(jiàn)的珊拼,但是他們?cè)谡麄€(gè)包的內(nèi)部是可見(jiàn)并且可用的(像面向?qū)ο笳Z(yǔ)言中的 protected )。
三流炕、應(yīng)用程序入口
- 必須是main包
- package main
- 必須是main方法
四澎现、退出返回值
- Go中的main函數(shù)不支持任何返回值
- 通過(guò)os.Exit來(lái)返回狀態(tài)
五、獲取命令行參數(shù)
- main函數(shù)不支持傳入?yún)?shù)
- 在程序中直接通過(guò)os.Args獲取命令行參數(shù)