Go基礎知識

2021-07-24 19:06:10 字數 886 閱讀 6754

1.func main()是程式開始執行的函式。main函式是每乙個可執行程式所必須包含的,一般來說都是在啟動後第乙個執行的函式(如果有init()函式則會先執行該函式)。

2.當識別符號(包括敞亮、變數、型別、函式名、結構欄位等)以乙個大寫字母開頭,那麼使用這種形式的識別符號的物件就可以被外部包的**所使用(客戶端程式需要先導入這個包),這被稱為匯出(像面相物件語言中的public);識別符號如果以小寫字母開頭,則對包外是不可見的,但在整個包的內部是可見並且可用的(像物件導向中的private)。

3.常量還可以用於列舉。

常量可以用len()、cap()、unsafe.sizeof()常量計算表示式的值。常量表示式中,函式必須是內建函式,否則編譯不過。

4.select

select是go中乙個控制結構,類似於用於通訊的switch語句。每個case必須是乙個通訊操作,要麼是傳送要麼是接收。select隨機執行乙個可執行的case。如果沒有case可執行,它將阻塞,直到有case可執行。乙個預設的子句應該總是可執行的。

5.切片(slice)

go語言切片是對陣列的抽象,陣列的長度不可改變,在特定場景中這樣的集合不太適用,go中提供了一種靈活、功能強悍的內建型別(「動態陣列」),與陣列相比切片的長度是不固定的,可以追加元素,在追加時可能使切片的容量增大。

go語言範圍(range)

go語言中range關鍵字用於for迴圈中迭代陣列、切片、鍊錶或者集合的元素,在陣列和切片中它返回元素的索引值,在集合中返回key-value對的key值。

7.map是一種無須的鍵值對組合。map最重要的一點是通過key來快速檢索資料,key類似於索引,指向資料。map是一種集合,所以可以像迭代陣列和切片那樣迭代它。不過,map是無序的,所以無法決定它的返回順序,這是因為map是使用hash表來實現的。

go基礎知識學習

最近沒有繼續部署elk系統和學習,是因為有專案進來了,自己需要學多一門語言go,學學吧,多學無害,但最怕學藝不精,最怕樣樣都懂點,樣樣都不深 package main import fmt func main 每個go應用程式都包含乙個名為main的包,func main 時候程式開始執行的函式,如...

go語言基礎知識

go指標func main go 空指標 當乙個指標被定義後沒有分配到任何變數時,它的值為 nil。nil 指標也稱為空指標。nil在概念上和其它語言的null none nil null一樣,都指代零值或空值。乙個指標變數通常縮寫為 ptr。檢視以下例項 例項package main import...

Go基礎知識 TCP UDP

1.網路程式設計 物理層 資料鏈路層 網路層 傳輸層 應用層 2.socket是應用層與tcp ip協議族通訊的中間軟體抽象層 3.tcp程式設計 net包裡面,並且粘包的問題需要注意 服務端處理流程 1.監聽埠2.接收客戶端請求建立鏈結 3.建立goroutine處理鏈結 客戶端處理流程 1.建立...