package (包)golang
可見性規則數組
當標識符(包括常量、變量、類型、函數名、結構字段等等)以一個大寫字母開頭,如:Group1,那麼使用這種形式的標識符的對象就能夠被外部包的代碼所使用(客戶端程序須要先導入這個包),這被稱爲導出(像面嚮對象語言中的 public);標識符若是以小寫字母開頭,則對包外是不可見的,可是他們在整個包的內部是可見而且可用的(像面嚮對象語言中的 private )。併發
聲明語句ide
Go語言主要有四種類型的聲明語句:var、const、type和func,分別對應變量、常量、類型和函數實體對象的聲明函數
函數ui
main 和 init 函數既沒有參數,也沒有返回類型spa
佔位符 https://studygolang.com/articles/2644線程
內置函數指針
數組對象
數組的長度和類型一塊兒構成了數組的類型, 好比 var array
實現接口 https://www.jianshu.com/p/d87c69ac6ce7
當涉及到咱們該怎麼讓咱們的類型實現接口時,Go 語言是特別的一個。Go 語言不須要咱們顯式的實現類型的接口。若是一個接口裏的全部方法都被咱們的類型實現了,那麼咱們就說該類型實現了該接口。
數據類型
可賦值(這裏不能叫類型轉換, 用可賦值表達更準確些)
A value x is assignable to a variable of type T ("x is assignable to T") in any of these cases:
在一下這些狀況值x能夠賦值給類型爲T的變量(x能夠賦值給T)
1. x's type is identical to T.
1. x的類型和T的類型相同
2. x's type V and T have identical underlying types and at least one of V or T is not a named type.
2. x和T具備相同的底層類型, 而且x和T至少有一個是非命名類型
3. T is an interface type and x implements T.
3. T是接口類型,x實現了T
4. x is a bidirectional channel value, T is a channel type, x's type V and T have identical element types, and at least one of V or T is not a named type.
4. x是雙向的chan類型的值, T是chan類型, x和T具備相同的元素類型, 而且x和T至少有一個是非命名類型
5. x is the predeclared identifier nil and T is a pointer, function, slice, map, channel, or interface type.
5. x的值爲nil, 而且T是指針、函數、切片、映射、通道或接口類型
6. x is an untyped constant representable by a value of type T.
6. x是一個沒有指定類型的常量, 能夠賦值給類型T(這裏要遵循第一條原則, 但數字類型除外)
整型數據類型及取值範圍
類型 | 字節 | 範圍 |
int8 | 1 | -128 ~ 127 |
uint8 | 1 | 0 ~ 255 |
int16 | 2 | -32 768 ~ 32 767 |
uint16 | 2 | 0 ~ 65 535 |
int32 | 4 | -2 147 483 648 ~ 2 147 483 647 |
uint32 | 4 | 0 ~ 4 294 967 295 |
int64 | 8 | -9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807 |
uint64 | 8 | 0 ~ 18 446 744 073 709 551 615 |
int | 平臺相關 | 平臺相關 |
uint | 平臺相關 | 平臺相關 |
uintptr | 同指針 | 在32位平臺下爲4字節,64位平臺下爲8字節 |
goroutine/channel