Go簡介

go語言筆記

標識符

一個包中的變量是以小寫字母開頭的,如果要公開一個標識符,這個標識符以大寫字母開頭,可以被直接訪問。

變量初始化

對于數(shù)值類型,零值是0;對于字符串類型,零值是空字符串;對于布爾類型,零值是false;對于指針,零值是nil;對于引用類型來說,所引用的底層數(shù)據(jù)結(jié)構(gòu)會被初始化成對應(yīng)的零值,但是被聲明為其零值的引用類型的變量,會返回nil作為其值。

defer延遲調(diào)用

關(guān)鍵字defer會安排隨后的函數(shù)調(diào)用在函數(shù)返回時菜執(zhí)行,可以保證defer聲明的函數(shù)一定會被調(diào)用,哪怕函數(shù)意外崩潰終止。使用defer可以提高代碼可讀性,減少錯誤。

可變參數(shù)
func (r *Runner) Add(tasks ...func(int)) {
    r.tasks = append(r.tasks, tasks...)
}

// 調(diào)用
r := runner.New()
r.Add(createTask(), createTask(), createTask())
Select關(guān)鍵字

帶 default 分支的 select 語句可以用來嘗試向通道發(fā)送或者接收數(shù)據(jù),而不會阻塞。

// gotInterrupt verifies if the interrupt signal has been issued.
func (r *Runner) gotInterrupt() bool {
    select {
    // Signaled when an interrupt event is sent.
    case <-r.interrupt:
        // Stop receiving any further signals.
        signal.Stop(r.interrupt)
        return true

    // Continue running as normal.
    default:
        return false
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容