随笔分类 -  golang

摘要:官方网站 http://www.grpc.io/ http://www.grpc.io/docs/quickstart/go.html grpc安装 • go安装 目前grpc需要go 1.5以上版本支持。go安装可以参考:http://www.cnblogs.com/heartchord/p/51 阅读全文
posted @ 2016-09-01 18:10 碎语心弦 阅读(1848) 评论(0) 推荐(0)
摘要:net包 • 官方文档 http://godoc.golangtc.com/pkg/net/ Package net provides a portable interface for network I/O, including TCP/IP, UDP, domain name resolutio 阅读全文
posted @ 2016-05-27 16:22 碎语心弦 阅读(1492) 评论(0) 推荐(0)
摘要:golang项目目录结构 <golang_proj> ├─README ├─AUTHORS ├─<bin> ├─<pkg> ├─<src> golang工程不需要任何的工程文件,一个完整的工程通常会在项目根目录下放置上面所示的文件或目录。它们的作用如下: √ README : 简单介绍本项目的目标和 阅读全文
posted @ 2016-05-06 18:21 碎语心弦 阅读(669) 评论(0) 推荐(0)
摘要:       √ 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 碎语心弦 阅读(1926) 评论(0) 推荐(0)
摘要:值和引用 • 值语义和引用语义 值语义和引用语义的差别在于赋值: b = a b.Modify() 如果b的修改不会影响a的值,那么属于值类型,否则属于引用类型。 • 值类型和引用类型 √ 引用类型一个特点:引用不绑定特定对象(c++中引用是要绑定特定对象),例如有两个同类型引用a和b,它们可以引用 阅读全文
posted @ 2016-03-07 18:52 碎语心弦 阅读(1054) 评论(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 碎语心弦 阅读(2260) 评论(0) 推荐(1)
摘要:流程控制 • 流程控制语句作用 ▪ 选择:根据条件跳转到不同的执行序列。 ▪ 循环:根据条件反复执行某个序列。 ▪ 跳转:据条件返回到某执行序列。 • 流程控制语句类型 ▪ 条件语句:关键字为if、else和else if。 ▪ 选择语句:关键字为switch、case和select。 ▪ 循环语句 阅读全文
posted @ 2016-02-23 16:20 碎语心弦 阅读(450) 评论(0) 推荐(0)
摘要:基础类型 √ golang内建基础类型有布尔类型、整数类型、浮点类型、复数类型、字符串类型、字符类型和错误类型。 复合类型 √ golang支持的复合类型有指针、数组、数组切片、字典、通道、结构体和接口。 阅读全文
posted @ 2016-02-22 11:54 碎语心弦 阅读(496) 评论(0) 推荐(0)
摘要:数组 √ golang数组包含的每个数据称为数组元素(element),数组包含的元素个数被称为数组长度(length)。 √ golang数组的长度在定义后不可更改,并且在声明时可以是一个常量或常量表达式(在编译期即可计算结果的表达式)。golang数组长度是一个内置常量,可以用len()函数来获 阅读全文
posted @ 2016-02-19 17:12 碎语心弦 阅读(2402) 评论(0) 推荐(0)
摘要:变量 • 变量声明 √ golang变量声明的关键字为var。 √ golang变量声明时类型信息放置在变量名之后。 ▶ 单个变量声明 ▪ 语法如下 var name type ▪ 示例如下 var v1 int // 整形 var v2 *int // 指针 var v3 string // 字符 阅读全文
posted @ 2016-02-17 15:22 碎语心弦 阅读(1877) 评论(0) 推荐(0)
摘要:package的作用 √ package是golang最基本的分发单位和工程管理中依赖关系的体现。 √ 每个golang源代码文件开头都拥有一个package声明,表示该golang代码所属的package。 √ 要生成golang可执行程序,必须建立一个名为main的package,并且在该pac 阅读全文
posted @ 2016-01-27 15:56 碎语心弦 阅读(3696) 评论(0) 推荐(0)
摘要:LiteIDE(windows) • golang安装 ▶ 下载对应操作系统的版本并安装,下载地址:http://www.golangtc.com/download,譬如这里下载的是go1.6.windows-amd64.msi。 ▶ 环境变量配置,这里只需要配置GOROOT、GOBIN和GOPAT 阅读全文
posted @ 2016-01-22 11:20 碎语心弦 阅读(2911) 评论(0) 推荐(1)