這裡的公有和私有是針對包來說的記住:
乙個資料夾就是乙個包
乙個包裡的所有檔案的開頭都是一樣的package 包名
包名一般就是檔名,main函式所在的包除外,當然也可以不一樣
大寫字母開頭的元素可以匯出到其它包中使用。
乙個包裡的檔案之間相互引用匯出的屬性、變數、函式等,是不需要import的
引用別的包匯出的內容需要import這個包
結構體定義的方法,可以在不同檔案,但是要在乙個包在,也就是乙個資料夾內
如果乙個資料夾下,有乙個main.go,他的第一行是package main,並且裡面有main函式。如果再在該資料夾下建立乙個aaa.go,那麼aaa.go的也必須是package main開頭,但是不能有main函式,因為乙個包內只有乙個main函式。這時候,main.go就可以直接飲用aaa.go匯出的檔案了。然後如果只執行go run main.go會報錯,必須執行go run main.go aaa.go,要把所有相互關聯的檔案都帶上
呼叫引入的檔案的變數,就用當前資料夾名.變數
// 寫乙個push方法
type queue [
]int
func
(q *queue)
push
(v int
)// 寫乙個pop方法
func
(q *queue)
pop(
)int
// 判斷是否為空切片
func
(q *queue)
isempty()
bool
type mytreenode struct
go語言tar包封裝
將檔案或目錄打包成 tar 檔案 src 是要打包的多個資料夾或者多個檔案 dsttar 是要生成的 tar 檔案的路徑 failifexist 標記如果 dsttar 檔案存在,是否放棄打包,如果否,則會覆蓋已存在的檔案 func tar srcs string dsttar string fai...
go語言 物件導向之包和封裝 十一
封裝 1.名字一般使用camelcase 2.首字母大寫 public 3.首字母小寫 private 包1.為結構定義的方法必須放在同乙個包內 2.可以是不同檔案 package queues type quene int func q quene addquene val int func q ...
鎖和 sync 包 go學習
在一些複雜的程式中,通常通過不同執行緒執行不同應用來實現程式的併發。當不同執行緒要使用同乙個變數時,經常會出現乙個問題 無法預知變數被不同執行緒修改的順序!這通常被稱為資源競爭,指不同執行緒對同一變數使用的競爭 顯然這無法讓人容忍,那我們該如何解決這個問題呢?經典的做法是一次只能讓乙個執行緒對共享變...