golang 派生資料型別

2021-09-28 15:39:50 字數 2481 閱讀 3008

資料型別概覽

指標型別(引用型別) var 變數 *type

陣列(值型別) var 變數名 [大小]型別

切片(引用型別) var 變數 型別

map(引用型別) var 變數名 map[key_type]value_type

map切片 var 變數名 map[key_type]value_type

struct(值型別)

方法介面(引用型別)

channel(引用型別) var 變數名 chan 型別

func

main()

package main

import

("fmt"

)func

main()

// var a = [3]int

// var a = [...]int // ...表示不確定長度

var a =[3

]int

//使用索引:值 賦值

fmt.

println

(a)for index, value :=

range a

}

底層是結構體,乙個切片含值、長度、容量

使用make建立切片

func

main()

fmt.

println

(a)}

var a =

inta =

(a,4,5

)// 注意

var b =

make([

]int,1

)copy

(b, a)

// b輸出1

func

main()

fmt.

println

(a)// 查詢 不存在,bool返回false, 存在返回true並返回值value

value,

bool

:= a[1]

a[1]=

4// 覆蓋a[1]

// 刪除 delete(map, key) 不存key也不報錯

delete

(a,"1"

)// 如果要刪除所有的key,可以使用遍歷

// 重新建立新的map賦給a,則之前的map沒有引用,會被gc**

自定義型別,都可以有方法

方法和型別繫結

如果乙個結構體實現了string()方法,則fmt.pringln()會執行這個方法

傳值、傳指標都可以用變數訪問

// s介面擁有a方法,b方法,不實現方法

type s inte***ce

// c1結構體繫結a方法,b方法

type c1 struct

// c2結構體繫結a方法,b方法

type c2 struct

func

(c c1)a(

)func

(c c1)b(

)func

(c c2)a(

)func

(c c2)b(

)// test繫結test1方法,test1實現了s介面

type test struct

// test1中實現了s介面的所有方法,則test1實現了s介面

func

(t test)

test1

(s s)

func

main()

func

main()

var ch chan

//唯讀

var ch

chan

//只寫

func

main()

ch2 :=

make

(chan

string,3

)for i :=

0; i <

3; i++

// 可以使用close關閉

// 可以使用select

for}

}

Golang 資料型別

注釋 行注釋 塊注釋 識別符號 除了數字開頭的不允許,符號開頭的不允許,關鍵字不允許,其他的unicode字元組合都可以。33 也可以是識別符號,我們 也可以是識別符號。識別符號也區分大小寫。以大寫字母開頭的識別符號是公開的。其他任何識別符號都是私有的。空識別符號 是乙個佔位符,用於賦值操作的時候,...

Golang資料型別

二 布林型 三 字串 數字 字串和布林型。布林型的值只可以是常量 true 或者 false。數字型別支援整型和浮點型,並且支援複數,其中位的運算採用補碼。復合資料型別包括 陣列 結構體是通過組合簡單型別,來表達更加複雜的資料結構。引用型別包括 指標 slice map channel 介面和函式型...

Golang 資料型別 字元型別

基本介紹 golang 中沒有專門的字元型別,如果要儲存單個字元 字母 一般使用 byte 來儲存。字串就是一串固定長度的字元連線起來的字串行。go 的字串是由單個位元組連線起來的。也就是說對於傳統的字串是由字元組成的,而 go 的字串不同,它是由位元組組成的。案例演示 對上面 說明 1 如果我們儲...