2018年12月7日
摘要:
一个变量赋值给另一个变量时,那么真正赋给副本的并不是前者持有的那个值,而是那个值得副本 这也就是修改前者,后者不变化的原因之一. 接口变量被赋予动态值的时候,存储的是一个包含了这个值得副本的另外一种更加复杂的结构iface, iface包含2个指针,一个是指向类型信息的指针,另个是指向动态值得指针.
阅读全文
posted @ 2018-12-07 11:20
码农er
阅读(499)
推荐(0)
2018年12月6日
摘要:
1.单通道的应用价值 约束其他代码行为,约束其他代码行为,约束其他代码行为 1.函数的参数为单通道 先看如下代码: func sendInt(ch chan <- int){ ch<-rand.Intn(1000) } 使用func关键字声明了一个sendInt的函数,这个函数只接受一个chan<-
阅读全文
posted @ 2018-12-06 13:21
码农er
阅读(162)
推荐(0)
2018年12月5日
摘要:
1.通道的声明 chan int 其中chan表示通道类型的关键字,int说明了通道中元素的数据类型 在初始化通道时,make函数除了能接收上面类型的参数,还可以接受一个int类型的参数用来表示通道中的最大容量 int参数为0代表非缓冲通道,大于0代表缓冲通道 一个通道相当于一个FIFO队列,元素的
阅读全文
posted @ 2018-12-05 17:32
码农er
阅读(221)
推荐(0)
摘要:
This variable m is a map of string keys to int values:var m map[string]intMap types are reference types, like pointers or slices, and so the value of
阅读全文
posted @ 2018-12-05 14:24
码农er
阅读(123)
推荐(0)
摘要:
1.List container/list 包 MoveBefore和MoveAfter分别用于把给定的元素移动到一个元素的前面和后面. MoveToFront和MoveToBack分别用于把给定的元素移动到链表的最前端和最后端. 给定的元素都是*Element类型,*Element类型是Eleme
阅读全文
posted @ 2018-12-05 11:21
码农er
阅读(527)
推荐(0)
2018年12月4日
摘要:
1.切片 切片的长度可以用len获得,容量由cap获得. s1:=make([]int,5) len(s1)可以得到长度为5,cap(s1)可以得到容量为5 s2:=make([]int,5,8) len(s2)可以得到长度为5,cap(s2)可以得到容量为8 在s1中我没有用make说明此切片的容
阅读全文
posted @ 2018-12-04 15:23
码农er
阅读(153)
推荐(0)
摘要:
1.数组、切片 数组的长度是固定的,切片的长度是可变长的 数组的长度在声明时就必须给定,并且之后不会再变化,数组的长度是其类型的一部分,比如[1]string和[2]string 不是相同的数组类型. 切片可以看作是对数组的封装,每一个切片的底层的数据结构一定包含一个数组,数组可以被叫做一个切片的底
阅读全文
posted @ 2018-12-04 11:28
码农er
阅读(186)
推荐(0)
2018年12月3日
摘要:
1.类型转换 go语言不允许隐式转换,所有类型转换必须显式声明,而且转换只能发生在两种相互兼容的类型之间。 var ch byte = 97 var a int = ch //error var a int =int(ch) 2.别名 type bint int64 //int64类型改名为bigi
阅读全文
posted @ 2018-12-03 11:49
码农er
阅读(822)
推荐(0)
posted @ 2018-12-03 11:28
码农er
阅读(621)
推荐(0)
摘要:
1.GO语言判断变量类型 断言格式:value,ok:=接口{}(变量名).(需要断言的类型) x.(T) x为需要断言的值,但是这个值当下的类型必须为接口类型,哪个接口无所谓 interface{}代表一个空接口 例: package main import "fmt" var bookStr=[
阅读全文
posted @ 2018-12-03 09:31
码农er
阅读(799)
推荐(0)