標籤:sum 執行 hello 方式 技術 應用程式 fun sele 檔案組
包是go語言中不可缺少部分,在每個go源碼的第一行進行定義,定義方式是:package "包名",並且該名稱是作為調用該包時候所使用的名稱。
包的概念總結:
- 每個 Go 檔案都屬於且僅屬於一個包。一個包可以由許多以
.go
為副檔名的源檔案組成,因此檔案名稱和包名可能不同,為了規範,功能相似或者屬於相同性質的源碼歸集到相同的包名中。
- 每個應用程式都必須有且只有一個包名稱為main,他是該程式的入口,執行時候會尋找包名為main的代碼
- 包與包之間可以被相互調用,主要為了減少代碼重複性
- 包一旦被引入就需要被使用,除非引入的時候忽略它(前面加_表示忽略它,只是用它來初始化),如果引入了包,而在代碼中沒用使用,運行時候會報錯
1.包引入的方法
方法一:
import "fmt"import "os"
方法二:
import "fmt"; import "os"
方法三(推薦!)
import ( "fmt" "os")
2.引入其他包
go語言中,引入包的路徑是根據GOPATH/src 這個環境變數作為相對路徑進行引入的,如果GOPATH存在多個,那麼go將逐一尋找路徑,直到找到,若GOPATH/src未找到則編譯出錯。
樣本:
我的GOPATH為:C:\Users\17647\Desktop\go_work\src
首先建立包檔案1:C:\Users\17647\Desktop\go_work\src\day02\eg1\pkg.go(相對於GOPATH/src的路徑為day02\eg1\pkg.go)
內容如下:
package add import "fmt"func Sum(a int,b int) { var c int c = a + b fmt.Println("res",c) }
在main進行引入如下:
package mainimport ( "fmt" "day02/eg1" /* 引入包 */)func main() { add.Sum(2,3) /* 調用包 */ fmt.Println("Hello, World!")}
圖示:
1.單個變數的聲明
go語言中,所有變數都必須先聲明在使用,下面是聲明變數和賦值方法:
- 先聲明後賦值: var <變數名稱> <變數類型> 賦值:變數的賦值格式: <變數名稱> = <運算式>
- 聲明的同時賦值:var <變數名稱> <變數類型> = <運算式> (簡寫為 變數名稱 := 運算式)
樣本:
package mainimport "fmt"func main() { var a string /* 聲明一個變數名為a,類型為字串的變數 */ a = "wd" /* 對a變數賦值*/ var age int = 22 /* 聲明並賦值變數 */ fmt.Println(a,age)}
2.多個變數聲明
- 先聲明後賦值:var <變數1>,<變數2>,<變數3> <變數類型> 賦值 : <變數1>,<變數2> = 值1,值2
- 聲明同時賦值 :var <變數1>,<變數2> = 值1,值2 可簡寫為: <變數1>,<變數2> = 值1,值2
- 多個變數還可以使用var()聲明
樣本:
package mainimport "fmt"func main() { var a,b int a,b = 1,2 var c,d = 3,"wd" /* 類型自動推斷 */ e, f := 4, "hello" /* 簡寫 */ fmt.Println(a,b,c,d,e,f)}
使用var()聲明
package mainimport "fmt"func main() { var ( a int //預設值為0 b string // 預設值為空白字串("") c = 3 ) fmt.Println(a,b,c)}
3.變數名
命名原則:
- 首字元可以是任意的Unicode字元或者底線
- 剩餘字元可以是Unicode字元、底線、數字
- 不能作為用以下關鍵字作為變數名
break default func interface selectcase defer go map structchan else goto package switchconst fallthrough if range typecontinue for import return var
4.可見度
可見度即對包外可見,當其他包調用當前包的變數時候是否允許可見(可訪問)。
- 變數開頭字元大寫,表示可見
- 變數開頭字母非大寫,則表示私人,不可見
go語言之行--包與變數