摘要:
类型断言检测使用多态时指向对象的引用类型是否能变为更加具体的引用类型AB接口内嵌入的A和B两个接口number结构体实现了AB接口。A num = new (number)numab,err := num.(AB)//类型断言,判断A接口引用类型是否可以变为AB(更具体的引用类型)类型断言事不能转为 阅读全文
摘要:
读取用户输入fmt.Scanln(&num,&str)//从控制台读取用户输入scanf,第一个参数是一个读取格式。input := "12 , 1 , 21"format := "%d , %s , %d" var name stringvar sex intvar age intfmt.Ssca 阅读全文
摘要:
接口定义了一组方法,但是都没实现type Namer interface { Method1(param_list) return_type Method2(param_list) return_type ...}实现了这些方法也就实现了这个接口 接口类型的变量就是一个接口值,指向实现了此接口的对象 阅读全文
摘要:
Go通过类型别名和结构体的形式支持用户自定义类型。结构体是复合类型。通过new来创建 组成结构体类型的数据称为字段。type identifier struct { field1 type1 field2 type2 ...} 在结构体的指针和结构体引用中,调用结构体内的字段都使用选择器(.)就是这 阅读全文
摘要:
GC算法使用的是可达性算法。通过runtime.GC()来显式调用GC()//一般别用 如果需要一个对象在被内存移除前执行一些特殊操作,使用SetFinalizerruntime.SetFinalizer(obj,func(obj *typeObj)) func可以是一个匿名函数 阅读全文
摘要:
键值(KV)存储结构 声明var map1 map[keyType]valueTypemap是动态增长的。未初始化的map的值是nil 初始化map1 = make(map[keytype]valuetype)map1 = make(map[keytype]valuetype,cap)noteFre 阅读全文
摘要:
实际上就是个数组。底层是一个数组,切片内有这个数组引用,和切片的信息。var arrAge = [5]int{18, 20, 15, 22, 16}var arrLazy = [...]int{5, 6, 7, 8, 22}//...可以忽略var arrKeyValue = [5]string{3 阅读全文
摘要:
Go里面有三种类型的函数普通带有名字的函数匿名函数或者lambda函数方法 main()、init()函数没有参数和返回值。参数、返回值被统称为函数签名。大括号必须这样func g() {}函数重载在Go内不被允许。如果需要声明一个在外部被定义的函数,只需要给出函数名和函数签名,不需要给出函数体。 阅读全文
摘要:
拥有指针,但是不可以进行指针运算。var intP *int ptr := &num指针的零值为nil对一个空指针的反向引用非法,下面的那个例子var ptr *intptr = nil*ptr = 15非法 time包提供了一个Time的数据类型t := new(time.Time)t.Day() 阅读全文
摘要:
字符串是UTF-8字符的一个序列。字符串是字节的定长数组。解释字符串,包含转义字符,非解释字符串,不包含转义字符。字符串可以使用比较运算符进行比较,且按照内存中的字节来对比。获取字符串所占的字节长度:len(str)获取字符串中的字节地址是非法的。&str[i] 字符串拼接:s = s1 + s2 阅读全文
摘要:
uint8.........................float32、float64(32精确到小数点后7位,64到15位)int是计算最快的一种类型尽可能使用float64,因为math包复数:complex64(32位实数和虚数)complex128(64位实数和虚数)位运算:二元:与& 阅读全文
摘要:
var a intvar(a intb boolstr string)变量声明之后,系统自动赋值(零值)int 0 float 0.0 bool false string ""Go的编译器可以自动推断类型(编译时期、运行时期都可以)var i = 5i := 15当你想要使用固定类型的时候还是自己写 阅读全文
摘要:
const Pi = 3.141显示类型定义:const b string = “string”隐式类型定义:const b = “string” 没有指定类型的常量被使用时,会根据使用环境来推断其类型。var n intf(n + 5)//5就是那个没有指定类型的常量常量的值必须是在编译时期就能确 阅读全文
摘要:
环境变量:GOROOT:Go在电脑上的安装位置GOARCH:当前的处理器架构(amd64、arm、386等)GOOS:操作系统GOBIN:编译器和链接器的位置,Go/bin。GOPATH:默认是Go的安装目录,可以改变,不过目录下必须有src、pkg、binGOMAXPROCS:Go可使用的计算机核 阅读全文