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