Posted on 2013-07-30 08:44
oathleo 閱讀(201)
評論(0) 編輯 收藏 所屬分類:
Golang
包是結構化代碼的一種方式:每個程序都由包(通常簡稱為 pkg)的概念組成,可以使用自身的包或者從其它包中導入內容。
如同其它一些編程語言中的類庫或命名空間的概念,每個 Go 文件都屬于且僅屬于一個包。一個包可以由許多以 .go
為擴展名的源文件組成,因此文件名和包名一般來說都是不相同的。
你必須在源文件中非注釋的第一行指明這個文件屬于哪個包,如:package main
。package main
表示一個可獨立執行的程序,每個 Go 應用程序都包含一個名為 main
的包。
如果需要多個包,它們可以被分別導入:
import "fmt" import "os"
或:
import “fmt”; import “os”
但是還有更短且更優雅的方法(被稱為因式分解關鍵字,該方法同樣適用于 const、var 和 type 的聲明或定義):
import ( "fmt" "os" )
可見性規則
當標識符(包括常量、變量、類型、函數名、結構字段等等)以一個大寫字母開頭,如:Group1,那么使用這種形式的標識符的對象就可以被外部包的代碼所使用(客戶端程序需要先導入這個包),這被稱為導出(像面向對象語言中的 public);標識符如果以小寫字母開頭,則對包外是不可見的,但是他們在整個包的內部是可見并且可用的(像面向對象語言中的 private )。
你可以通過使用包的別名來解決包名之間的名稱沖突,或者說根據你的個人喜好對包名進行重新設置,如:import fm "fmt"
。下面的代碼展示了如何使用包的別名:
Example 4.2 alias.go
package main import fm "fmt" // alias3 func main() { fm.Println("hello, world") }
函數里的代碼(函數體)使用大括號 { }
括起來。
左大括號 {
必須與方法的聲明放在同一行,這是編譯器的強制規定,否則你在使用 gofmt 時就會出現build-error: syntax error: unexpected semicolon or newline before {
這樣的錯誤提示。
一個函數可以擁有多返回值,返回類型之間需要使用逗號分割,并使用小括號 ( )
將它們括起來,如:func FunctionName (a typea, b typeb) (t1 type1, t2 type2)