1、 go通過package的方式來組織原始碼
package 包名注意:任何乙個原始碼都屬於乙個包
作用:**復用和可讀性
2、可執行程式的包名必須為main,並且包含乙個main函式
package main3、package組織案例例import (
"fmt"
)func main()
再src/calc的包編輯完成後再pkg中
1、鏈結工程
package main -- | 靜態鏈結
|----------------------> 可執行檔案
pkg/windows_amd64/.../*.a ---|
1、除了可執行程式之外,使用者可以寫自定義包,自定義包編譯成靜態庫
package calc注意:go_path 要配置好路徑// package calc2 不建議這麼寫
// 包組織方式,自定義包
// 使用go install生成靜態庫
// calc_test中呼叫靜態庫
var (
sum int
)func add(a int, b int) int
// 小寫方法名為私有,不能呼叫
// _ 沒有引用保留包
)// 呼叫pkg\windows_and64\githbu.com\gostudy\listen11\calc.a
// 執行全域性變數,再執行init初始化
var a int = 10
var b int = 10
// init 函式,再main函式之前執行
func init()
// init函式可以多個,可以有多檔案,多init,按編譯順序執行
// 1初始化sub 包
// 2初始化add import
// 3初始化main
func init()
func main()
1、go run運⾏行行go**, 如果有多個⽂檔案,需要把所有⽂檔案都寫到go run後⾯面
2、go build 編譯go**,如果是可執行程式,缺省會在當前⽬目錄⽣生成可執行程式,可以使⽤用-o指定可執行程式生成的目錄。
3、go install編譯go**,並且把可執行程式拷貝到gopath的bin目錄,自定義或第三方包會拷貝到gopath的pkg目錄
1、乙個包里可以有0個或多個init函式,在程式啟動時會被自動呼叫
package calc2、 如果乙個包import另外乙個包import (
"fmt"
)// 先執⾏行行全域性
// 變數量初始化
var a int=10
// 然後再執行
// init函式
func init()
// 最後執行
// main函式
func add(a, b int) int
1、_ 沒有引用保留包
package calcimport (
「fmt"
_ 「sub」
)func add(a, b int) int
Go語言學習十一 go語言切片
go 語言切片是對陣列的抽象。go 陣列的長度不可改變,在特定場景中這樣的集合就不太適用,go中提供了一種靈活,功能強悍的內建型別切片 動態陣列 與陣列相比切片的長度是不固定的,可以追加元素,在追加時可能使切片的容量增大。你可以宣告乙個未指定大小的陣列來定義切片 var identifier typ...
Go語言學習筆記 十一 之指標
變數和記憶體位址 1.每個變數都有記憶體位址,可以說通過變數來操作對應大小的記憶體,符號可以獲取變數的位址1 var a int322 a 1003 fmt.printf d n a 4 fmt.printf p n a 1 1002 0xc00004a058 2.普通變數儲存的是對應型別的值,這些...
原創 go語言學習(五)函式詳解1
1 函式介紹 2 多返回值和可變引數 3 defer語句 4 內建函式介紹 有輸 入 有輸出,用來執 行 乙個指定任務的 塊。func functionname parametername type returntype 其中引數列 表和返回值列 表是可選 func functionname 兩數相...