02 2019 档案

摘要:1、无缓存channel ch := make(chan int),消费者协程必须在 channel 放入值之前执行,不然会导致deadlock。因为放入数据就会获得一把锁,等待消费者消费,消费完才释放锁。 2、缓存channel ch2 := make(chan int, 1),channel 放 阅读全文
posted @ 2019-02-23 14:52 osbreak 编辑
摘要:panic 阅读全文
posted @ 2019-02-19 16:56 osbreak 阅读(295) 评论(0) 推荐(0) 编辑
摘要:Go语言中的defer语句也非常独特。 defer语句仅能被放置在函数或方法中。 它由关键字defer和一个调用表达式组成。 调用表达式所表示的既不能是对Go语言内建函数的调用 也不能是对Go语言标准库代码包unsafe中的那些函数的调用。 实际上,满足上述条件的调用表达式被称为表达式语句。 func readFile(path string) ([]byte, error) { ... 阅读全文
posted @ 2019-02-19 16:38 osbreak 阅读(279) 评论(0) 推荐(0) 编辑
摘要:select语句属于条件分支流程控制方法,不过它只能用于通道。 select语句中的case关键字只能后跟用于通道的发送操作的表达式以及接收操作的表达式或语句。 ch1 := make(chan int, 1) ch2 := make(chan int, 1) select { case e1 := <-ch1: fmt.Printf("1th case is select... 阅读全文
posted @ 2019-02-19 16:23 osbreak 阅读(460) 评论(0) 推荐(0) 编辑
摘要:指针操作涉及到两个操作符——&和*。 表达式&p的求值结果是p的指针。 地址操作符*被应用到一个指针值上时会取出该指针指向的值。 它们可以被视为相反的操作。 *出现在一个类型之前(如*Person和*[3]string)时就不能被看做是操作符了,而应该被视为一个符号。 如此组合而成的标识符所表达的含义是作为第二部分的那个类型的指针类型。 一个指针类型拥有以它以及以它的... 阅读全文
posted @ 2019-02-19 16:04 osbreak 阅读(144) 评论(0) 推荐(0) 编辑
摘要:接口类型总是代表着某一种类型(即所有实现它的类型)的行为。 一个接口类型的声明通常会包含关键字type、类型名称、关键字interface以及由花括号包裹的若干方法声明。 type Animal interface { Grow() Move(string) string } 接口类型中的方法声明是普通的方法声明的简化形式。 它们只包括方法名称、参数声明列表和结果声明... 阅读全文
posted @ 2019-02-19 15:45 osbreak 阅读(295) 评论(0) 推荐(0) 编辑
摘要:结构体类型的字面量由关键字type、类型名称、关键字struct,以及由花括号包裹的若干字段声明组成。 type Person struct { Name string Gender string Age uint8 } Person{Name: "Robert", Gender: "Male", Age: 33} 键值对的顺序与其类型中的... 阅读全文
posted @ 2019-02-19 15:31 osbreak 阅读(327) 评论(0) 推荐(0) 编辑
摘要:可以把函数作为值来传递和使用。Go语言中的函数可以返回多个结果。 func(input1 string ,input2 string) string 函数接受n个参数func add(a int, arg ...int) int { var sum int = a for i := 0; i < len(arg); i++ { sum += arg[i]... 阅读全文
posted @ 2019-02-19 15:28 osbreak 阅读(191) 评论(0) 推荐(0) 编辑
摘要:通道类型的表示方法很简单,仅由两部分组成 chan T 在这个类型字面量中,左边是代表通道类型的关键字chan,而右边则是一个可变的部分。 即代表该通道类型允许传递的数据的类型(或称通道的元素类型)。 这两部分之间需要以空格分隔。 与其它的数据类型不同,我们无法表示一个通道类型的值。 因此,我们也无 阅读全文
posted @ 2019-02-18 23:25 osbreak 阅读(299) 评论(0) 推荐(0) 编辑
摘要:对于数组来说,索引值既不能小于0也不能大于或等于数组值的长度。 索引值的最小有效值从0开始。 len是Go语言的内建函数的名称。 该函数用于获取字符串、数组、切片、字典或通道类型的值的长度。 var length = len(numbers) 如果我们只声明一个数组类型的变量而不为它赋值,那么该变量 阅读全文
posted @ 2019-02-18 22:55 osbreak 阅读(499) 评论(0) 推荐(0) 编辑
摘要:var 声明变量 const 常量的关键字, 常量不能出现只声明不赋值的情况。 名字首字母为大写的程序实体可以被任何代码包中的代码访问到。 名字首字母为小写的程序实体则只能被同一个代码包中的代码所访问。 Go语言的整数类型一共有10个, int, uint byte与rune类型有一个共性,即:它们 阅读全文
posted @ 2019-02-13 22:48 osbreak 阅读(215) 评论(0) 推荐(0) 编辑
摘要:main.go go build main.go 阅读全文
posted @ 2019-02-13 21:24 osbreak 阅读(246) 评论(0) 推荐(0) 编辑
摘要://加密机制初始化 g_HDMgr.init(); //对方的public key BIGNUM* peerPubKey = NULL; peerPubKey = BN_bin2bn((unsigned char*)pRegist->DH_PubKey, pRegist->nDH_PubKey_Le 阅读全文
posted @ 2019-02-11 16:00 osbreak 阅读(2161) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示