資料型別概覽
指標型別(引用型別) 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 如果我們儲...