03 2016 档案

摘要:       √ golang社区口号:不要通过共享内存来通信,而应该通过通信来共享内存。        √ golang提供一种基于消息机制而非共享内存的通信模型。消息机制认为每个并发单元都是自包含的独立个体,并且拥有自己的变量,但在不同并发单元间这些变量不共享。每个并发单元的输入和输出只有一种, 阅读全文
posted @ 2016-03-15 18:02 碎语心弦 阅读(3392) 评论(0) 推荐(0)
摘要:       √ 协程通常称为coroutine,在golang中称为goroutine。        √ 协程本质上是一种用户态线程,它不需要操作系统来进行抢占式调度,在实际实现中寄存在线程之中。        √ 协程系统开销极小,可有效提高单个线程的任务并发性,从而避免使用多线程。而且使用协 阅读全文
posted @ 2016-03-14 19:16 碎语心弦 阅读(3801) 评论(0) 推荐(0)
摘要:侵入式接口 √ 在其他一些编程语言中,接口主要是作为不同组件之间的契约存在,即规定双方交互的规约。 √ 对契约的实现是强制的,即必须确保用户的确实现了该接口,而实现一个接口,需要从该接口继承。 √ 如果一个类实现了接口A,即便另一个接口B与A的方法列表相同,甚至连接口名都相同,但位于不同的命名空间下 阅读全文
posted @ 2016-03-11 18:08 碎语心弦 阅读(695) 评论(0) 推荐(0)
摘要:匿名组合 golang也提供了继承机制,但采用组合的文法,因此称为匿名组合。与其他语言不同, golang很清晰地展示出类的内存布局是怎样的。 • 非指针方式组合 ▶ 基本语法 // 基类 type Base struct { // 成员变量 } func (b *Base) 函数名(参数列表) ( 阅读全文
posted @ 2016-03-09 16:20 碎语心弦 阅读(1923) 评论(0) 推荐(0)
摘要:值和引用 • 值语义和引用语义 值语义和引用语义的差别在于赋值: b = a b.Modify() 如果b的修改不会影响a的值,那么属于值类型,否则属于引用类型。 • 值类型和引用类型 √ 引用类型一个特点:引用不绑定特定对象(c++中引用是要绑定特定对象),例如有两个同类型引用a和b,它们可以引用 阅读全文
posted @ 2016-03-07 18:52 碎语心弦 阅读(1052) 评论(0) 推荐(1)
摘要:错误处理 • 错误处理的标准模式 √ golang错误处理的标准模式:error接口。 √ golang函数如果要返回错误,规范上是将error作为多返回值中的最后一个,但这并非是强制要求。 ▶ error接口 type error interface { Error() string } ▶ 内置 阅读全文
posted @ 2016-03-03 19:09 碎语心弦 阅读(630) 评论(0) 推荐(0)
摘要:普通函数定义 √ golang函数基本组成:关键字func、函数名、参数列表、返回值、函数体和返回语句。 • 语法如下 func 函数名(参数列表) (返回值列表) { // 函数体 } • 示例如下 package main import "fmt" import "errors" func Ad 阅读全文
posted @ 2016-03-02 12:10 碎语心弦 阅读(2259) 评论(0) 推荐(1)