這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
<pre class="plain" name="code">package mainimport ("fmt""os""strings")func main() {who := "world!" // 定義變數whoif len(os.Args) > 1 {who = strings.Join(os.Args[1:], " ")}fmt.Println("hello", who)// 輸出}
Go語言使用C++注釋風格
所有的Go語言代碼都只能放置在一個包中,每個Go程式都必須包含一個main包以及一個main()函數。main()函數作為整個程式的入口,在程式運行時被先執行。實際上Go語言中的包還可能包括init()函數,它先於main()函數被執行。
包名和函數名之間不會發生命名衝突的情況。
Go語言針對的處理單元是包,而非檔案, 這意味著可以將包拆分成任意數量的檔案。在Go編譯器看來,如果所有這些檔案的包聲明都是一樣的,那麼它們就屬於一個包,這跟把所有內容放在一個單一的檔案裡是一樣的。
import語句匯入了3個標準庫中的包:
fmt包提供來格式化文本和讀入格式文本的函數,
os包提供了跨平台的作業系統層面變數及函數
strings包提供了處理字串的函數
Go語言的基本類型支援常用操作符(如“+”可用於數字加法運算子和字串連結運算),同時Go語言的標準庫也提供了擁有各種功能的包來對這些操作進行補充,如:strings。也可以給予這些基本類建立自己的類型,或者為這些類型添加自訂方法。
在Go語言中,包含函數體以及控制結構體在內的代碼塊均使用花括弧作為邊界符。從技術層面講,Go語言的語句是以分好分隔的,但這些是由編譯器自動添加的,不用手動輸入,除非需要在同一行寫入多個語句。
Go語言的函數和方法以關鍵字func定義。
:= 在Go語言中叫做快速變數的生,main()函數中的第一行語句同時聲明並初始化了一個變數。Go是強型別的語言。