1. 程式人生 > 其它 >[GO]Golang的一些特有基礎語法

[GO]Golang的一些特有基礎語法

1.下劃線

下劃線的作用是用來接收一個變數,並且不對其進行操作.

比如os.Open,返回值為*os.File,error.

普通寫法:

f,err := os.Open("xxxxxxx") 

如果此時不需要知道返回的錯誤值 就可以用

f, _ := os.Open("xxxxxx") 

如此則忽略了error變數.這樣編譯器可以更好的優化,任何型別的單個值都可以丟給下劃線。

2.變數宣告的形式

Go語言的變數宣告格式為:

var 變數名 變數型別

Go語言在宣告變數的時候,會自動對變數對應的記憶體區域進行初始化操作。每個變數會被初始化成其型別的預設值,例如: 整型和浮點型變數的預設值為0。 字串變數的預設值為空字串。 布林型變數預設為false

。 切片、函式、指標變數的預設為nil

可以在宣告的時候同時進行初始化:

var 變數名 型別 = 表示式

有時候我們會將變數的型別省略,這個時候編譯器會根據等號右邊的值來推導變數的型別完成初始化。

var 變數名 = 表示式

在函式內部,可以使用更簡略的 := 方式宣告並初始化變數。這種:=宣告方式不能用於函式外.

func main() {
    n := 10  //短宣告方式
    m := 200 
    fmt.Println(m, n)
}

匿名變數:在使用多重賦值時,如果想要忽略某個值,可以使用匿名變數,用一個下劃線_表示,匿名變數不佔用名稱空間,不會分配記憶體,所以匿名變數之間不存在重複宣告。

func foo() (int, string) {
    return 10, "test"
}
func main() {
    x, _ := foo()
    _, y := foo()
    fmt.Println("x=", x)
    fmt.Println("y=", y)
}

3.Golang的字元,字串和切片

Golang的字串底層是一個byte陣列,所以可以和[]byte型別相互轉換。字串是不能修改的 字串是由byte位元組組成,所以字串的長度是byte位元組的長度。

要修改字串,需要先將其轉換成[]rune或[]byte,完成後再轉換為string。無論哪種轉換,都會重新分配記憶體,並複製位元組陣列。

    func changeString() {
        s1 := "hello"
        // 強制型別轉換 轉為切片byteS1
        byteS1 := []byte(s1)
        byteS1[0] = 'H'
        fmt.Println(string(byteS1))
     //rune 型別是一種特殊的int32 用於處理中文等情況 
        s2 := "部落格"
        runeS2 := []rune(s2)
        runeS2[0] = '波'
        fmt.Println(string(runeS2))
    }