Go語言之基礎語法

2021-10-25 01:39:07 字數 2642 閱讀 5980

資料型別

函式外部定義的包級名字,如果首字母大寫,則可以被其它包訪問。

var:變數

const:常量

type:型別

func:函式

var 變數名 變數型別 = 初始值
其中變數型別初始值可以省略其一。

如果省略變數型別,那麼會根據初始值自動推倒變數型別;如果省略初始值,那麼會進行預設初始化為對應變數型別零值

a, b :=

"hi"

,true

簡短變數宣告左邊的變數至少有乙個是新的變數,否則需要使用多重賦值。

比較下面兩份**:

var cwd string

func

init()

log.

printf

("working directory = %s"

, cwd)

}

var cwd string

func

init()

log.

printf

("working directory = %s"

, cwd)

}

go語言將資料型別分為4類:

基礎型別:數字、字串、布林型

復合型別:陣列、結構體

引用型別:指標、切片、字典、函式、通道

介面型別:

unicode字元rune型別與int32型別等價

byteuint8等價

字串不可變。

runestring的轉換:

s :=

"hello"

s2r :=

rune

(s)r2s :=

string

(s2r)

bytestring的轉換:

s :=

"world"

s2b :=

byte

(s)b2s :=

string

(s2b)

strings 包提供了許多如字串的查詢、替換、比較、截斷、拆分和合併等功能。

bytes 包也提供了許多類似功能的函式,但是針對和字元個有著相同結構的byte 型別。

strconv 包提供了布林型、整型數、浮點數和對應字串的相互轉換,還提供了雙引號相關的轉換。

unicode 包提供了 isdigit、isletter、isupper 和 islower 等類似功能,它們用於給字元分類。

path 和 path/filepath 包提供了關於檔案路徑的操作。

陣列與其它語言的陣列基本一致。

slice

s :=

int// slice

z :=

[...

]int

// array

sl :=

make([

]int

,len

,cap

)// slice

s =(s,5)

s =(s,6,

7,8)

map
mp :=

make

(map

[string

]int

)ages :=

map[

string

]int

delete

(ages,

"alice"

)// 刪除元素

for k, v :=

range ages

// check if map contains a specific element

val, ok := ages[

"jiang"]if

!ok

結構體

匿名成員:

type point struct

type circle struct

type wheel struct

var w wheel

w.x =

10// equivalent to w.circle.point.x = 10

w.y =

20w.radius =

100w.spokes =

30

json
import

"encoding/json"

json.

marshal()

json.

marshalindent()

json.

unmarchal

()

GO語言基礎語法

語言變數 go語言的語言符號又稱記法元素,共包括5類,標籤符 identifier 關鍵字 keyword 操作符 operator 分隔符 delimiter 字面量 literal 它們是組成go語言 和程式的最基本單位。go語言的所有源 都必須由 unicode 編碼規範的 utf 8 編碼格...

Go 語言基礎語法

go 標記 go 程式可以由多個標記組成,可以是關鍵字,識別符號,常量,字串,符號。如以下 go 語句由 6 個標記組成 fmt.println hello,world 6 個標記是 每行乙個 1.fmt 2.3.println 4.5.hello,world 6.行分隔符 在 go 程式中,一行代...

Go 語言基礎語法

上一章節我們已經了解了 go 語言的基本組成結構,本章節我們將學習 go 語言的基礎語法。go 程式可以由多個標記組成,可以是關鍵字,識別符號,常量,字串,符號。如以下 go 語句由 6 個標記組成 fmt.println hello,world 6 個標記是 每行乙個 1.fmt 2.3.prin...