Go學習筆記

2021-09-29 19:41:02 字數 2942 閱讀 3240

使用關鍵字var定義變數,自動初始化為零值。如果提供初始化值,可省略變數型別。

函式內部,可用更簡略的:=方式定義變數。空白符號_

package main

import

"fmt"

func

test()

,2,0

//函式內部:=定義變數陣列data[0],data[1],data[2]並賦值0,1,2,且i=0

i, data[i]=2

,100

// (data[0] = 100),(i = 0) -> (i = 2) | 從右往左賦值

fmt.

println

(i, data[i]

, data[0]

)}func

main()

輸出結果:

2 2 100

有關指標詳見go語言的指標*和&

&符號的意思是對變數取位址,如:變數a的位址是&a

*符號的意思是對指標取值,如:*(

&a),就是a變數所在位址的值,等於a

package main

import

"fmt"

func

main()

}

輸出結果:

0xc0000461f0

0xc0000461f0 20

0xc000014110 30

package main

import

("fmt"

)func

main()

//指標陣列(是陣列)

fmt.

println

(ar)

}

輸出結果:

a = 1

&a = 0xc0000140d8

*b = 1

b = 0xc0000140d8

&b = 0xc000006028

**c = 1

c = 0xc000006028

&c = 0xc000006030

x = 1

[0xc00001c0d8 0xc00001c0f0]

列舉關鍵字 iota 定義常量組中從 0 開始按行計數的自增列舉值。如果 iota 自增被打斷,須顯式恢復。

const

( a =

iota

// 0

b // 1

c ="c"// c

d // c,與上⼀一⾏行相同。

e =iota

// 4,顯式恢復。注意計數包含了 c、d 兩⾏行。

f // 5

)

使用 「`」 定義不做轉義處理的原始字串,支援跨行。

s :=

`ab\r\n\x00

c`println

(s)

輸出結果:

ab\r\n\x00

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

package main

import

"fmt"

func

main()

輸出結果:

abcd

**用 for 迴圈遍歷字串時,也有 byte 和 rune 兩種方式。

package main

import

"fmt"

func

main()

fmt.

println()

for_

, r :=

range s

}

輸出結果:

a,b,c,æ,±,‰,å,­,—,

a,b,c,漢,字,

switch對應著case。語句對語句,

import

("fmt"

)func

main()

}

輸出結果:

a>=0

a>=1

跳轉語句goto(調整執行位置)、continue(跳出當前迴圈)、break(退出)配合標籤可用於多層迴圈的跳出

指向陣列的指標(new關鍵字建立的陣列返回的也是指向陣列的指標)和指標陣列

a :=

[...

]int

fmt.

println

(a)var p *[10

]int

=&a //指向陣列的指標(是指標)

fmt.

println

(p)n :=

new([10

]int

)fmt.

println

(n)/*

x, y := 1, 2

ar := [...]*int //指標陣列(是陣列)

fmt.println(ar) //輸出[0xc00001c0d8 0xc00001c0f0]

*/

輸出結果:

[0 0 0 0 0 0 0 0 0 4]

&[0 0 0 0 0 0 0 0 0 4]

&[0 0 0 0 0 0 0 0 0 0]

切片slice(指向底層的陣列)

為引用型別,len()獲取元素個數,cap()獲取容量,一般使用make()建立,make(t,len,cap(可省略,則和len值相同))

go學習筆記

那些打不倒你的,終將讓你變的更強 package main import fmt func main 輸出結果 num1的型別是 int,數值是 30 num2的型別是 int,數值是 40 name的型別是 string,數值是 zhangshang sum的型別是 int,數值是 30 1 2 ...

Go學習筆記

go語言型別宣告語句 一 宣告變數 var 基本資料型別 1.整型 基礎型別 變數的宣告 變數的字面值為整型 var a int 自動初始化為0 變數的賦值 a 100 var b 200 隱式宣告變數並初始化 var c int 300 顯式宣告型別的變數 d 400 自動推導變數的型別 w,z ...

Go學習筆記

簡單的go 優雅地解決棘手的併發問題 go 語言 包 fmt 字串格式化包 flag 接受和解析命令引數包 log 日誌輸出包,log.fatal 輸出致命錯誤 net http 網路程式設計之http包 疑問 形式引數 r http.request asta 人名 xie 謝孟軍 beego作者,...