這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
golang學習筆記
基本文法
關鍵字(key word) && 變數
關鍵字
golang僅有25個關鍵字,如下:
var import type return constif else for range breakselect default goto switch fallthroughfunc interface case chan continuedefer go map struct package
變數聲明&&初始化&&賦值
golang變數聲明方式與C/C++系語言有明顯不同,對於golang這種聲明方式知乎上有討論為什麼 Go 語言把類型放在後面?。
golang引入var
關鍵字,類型資訊放在變數名之後。
```go
var n int // 定義一個int變數
var f float32
var str string // 定義一個string變數
var arr [10]int // 數組
var m map[int]int // map
var p *int // pointer
var n int = 10 //定義並初始化
var n = 10
n := 10 // 效果樣,可以自動推到n類型
n = 100 // 賦值
n2 := n // 定義並初始化
// ……
由上面樣本可以看出,golang語句不需要分號作結束符,而且定義一個變數是被初始化的一般預設值是`0`,而指標是`nil`,`string`是`""`。
package main
import "fmt"
func main() {
var n int
fmt.Println("int: ", n)
var f float32
fmt.Println("float: ", f)
var str string
fmt.Println("string: ", str)
var arr [10]int
fmt.Printf("array: ")
for i := 0; i < len(arr); i++ {
fmt.Printf("%d ", arr[i])
}
fmt.Println()
var p int
fmt.Println("int: ", p)
}
/
output:
int: 0
float: 0
string:
array: 0 0 0 0 0 0 0 0 0 0
int:
*/
```
類型(type)
golang中內建基礎類型
- boolean
- int8、byte、int16、int、uint、uintptr
- float32、float64
- complex64、complex128
- string
- rune
- error
複合類型
- 數組(array)
- 字典(map)
- 切片(slice)
- 結構體(struct)
- 通道(chan)
- 介面(interface)
- 指標(pointer)
- 引用(reference)
流程式控制制(flow control)
- 條件陳述式
if else
- 選擇語句
switch case select
- 迴圈語句
for range
- 跳躍陳述式
goto
函數(function) && 包(package)
- 函數定義
```go
func func_name() {
}
```
- 函數調用
- 不定參數
- 多傳回值
- 匿名函數&&閉包
- 包管理
物件導向
- 方法(method)
- 匿名欄位
- 介面(interface)