go語言簡單入門--常識和資料型別

piny發表於2021-09-09

go語言常識:

1、包匯出機制:首字母大寫,代表可以匯出,否則不能匯出,所以看到所有包的方法都是首字母大寫的。

2、所有的匯入都要放到檔案最前面,這是解析機制導致的。

3、go關鍵字可以併發,但是執行依賴排程,如果只是在main順序的新建goroutine沒有觸發排程,則goroutine裡面的程式碼不會執行。


go語言資料型別

1、go語言資料型別

a) 基本型別、引用型別、聚合型別、介面型別。(其實可以更廣泛的將這個型別分為基本型別和引用型別,

b) 如何區分資料型別:基本型別空值是當前型別,引用型別的空值是nil。一般情況下,基本型別可以比較(==), 引用型別不可比較。)

2、基本型別(18個)

bool

byte

rune(儲存unicode)

int/uint

int8/uint8

int16/uint16

int32/uint32

int64/uint64

float32

float64

complex64

complex128

string

a) Int: int8、 uint8、int16、uint16...,int需要注意的點是:

i. 基礎的int型別在不同的作業系統裡是不一樣的,64位作業系統中是int64,32位作業系統中是int32.

ii. Byte是int8型別的同義詞,rune是int32的同義詞,前者是一個資料的原始型別,後者多用於描述unicode碼點。

b) float32、float64

c) complex64、complex128

d) string

e) struct

f) bool

g) array [v]type{} 這裡也可以用特殊表示法如[...]int{99: 1}

 

3、常見的引用型別

a) Slice:slice看上去和array類似,但是是array的引用即每一個slice都有一個底層陣列。[]type{value1}

b) Interface

c) Map: map[keyType]valueType

d) channel

 

  • 這裡有幾點小技巧:

  1. 可以比較的資料型別才能作為一個map的鍵,所以map的鍵都是基本型別。

  2. 值型別儲存在棧中,引用型別儲存在堆或棧中。

  3. 無符號整數的應用場景大多是些二進位制解碼,加密或hash等。

  4. Const型別的變數都是基本型別。

 

  • String型別常用的包有下面四個:

  1. strings:用於對string進行一些操作,例如count、prefex、contains等等

  2. strconv: 用於string與其他型別的裝換或者解析,如strconv.Itoa、strconv.ParseBool()等。

  3. bytes:和strings類似,不過大多處理的是[]byte{}這種型別的字串。

  4. unicode: 處理unicode相關的東西。

 

需要記住:

透過fmt.Print之類的函式列印一個變數時,其實是呼叫當前變數的String方法,因 此只要這個變數包含String方法,就會重寫原有的String方法,呼叫當前變數String 方法。 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3034/viewspace-2819832/,如需轉載,請註明出處,否則將追究法律責任。

相關文章