golang學習筆記

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

與c文法不同之處:

 1. 參數列表中各個參數類型相同時可以唯寫出最後一個,如:add(x, y int) int { return x +y } 2. 類型在參數名(變數/函數)後面 3. 函數的左大括弧要跟函數名同一行,否則編譯不過 4. 函數定義要先寫關鍵字func在函數開頭(函數外的每個語句都要以func、var等等關鍵字開頭) 5. 在包或者函數層級聲明變數時要用var語句 6. 函數支援多值返回,如:func swap(x, y string) (string, string) { return y,x } 7. 函數支援命名傳回值,如func split(x int) (x, y int) { ... return} 8. 初始化使用運算式時可以不用寫類型,由初始值推匯出類型 9. 可以用 :=實現變數簡捷複製,不需要加var,但僅能在函數內部使用 10.fmt.Printf格式化輸出:%T輸出變數類型,%q輸出帶雙引號的字串,%v輸出結構類型 11.不同類型變數的賦值需要顯示類型轉換 12.常量定義要使用const,不能使用 :=,聲明兩個const變數可以const(x=1; y=2) 13.條件控制語句不加小括弧(if、for、switch等) 14.for迴圈前置、後置語句可以為空白,如for sum < 1000 {...},格式類似c中的while,for的迴圈條件為空白時是死迴圈 15.if語句後可以加一個便捷語句,如if v:=41; sum<lim{...},if便捷語句中聲明的變數只在if語句及else語句中有效 16.switch...case...在匹配成功的時候會停止,不需要像c那樣顯示break,沒有條件的switch語句等同於switch true,用於更清晰的表達if-then-else 17.defer關鍵詞,延緩語句執行,直到上層函數返回,延遲的函數會被壓入棧中,後進先出 18.go有指標,但沒有指標運算,通過指標訪問結構體成員時用點操作符,指標是透明的 19.通過Name:文法可以只列出部分欄位,其餘欄位為零值 20.由make建立slice b := make([]int, 0, 5) // len(b)=0, cap(b)=5,make的參數包括長度和容量,slice的零值是nil,一個nil的slice長度和容量都是0 21.go中若有聲明但未使用的變數時編譯會報錯,用_來做變數名就可以了 22.go中沒有類,但是可以在包內任意類型定義方法(不包括基礎類型) 23.方法可以與命名類型或者命名類型的指標相關聯,接收者為指標有兩個好處:第一,避免在方法調用中拷貝值,第二,可以修改接收者指向的值 24.介面類型是由一組方法定義的類型的集合,介面類型的值可以存放實現這些方法的任何值 25.本地查看go語言官方文檔,godoc -http=:8011(連接埠號碼自己指定),然後瀏覽器開啟http://localhost:8011就可以了

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.