摘要: ,ok,第一个参数是一个值或者nil,第二个参数是true/false或者一个错误error。在一个需要赋值的if条件语句中,使用这种模式去检测第二个参数值会让代码显得优雅简洁。这种模式在go语言编码规范中非常重要。下面总结了所有使用这种模式的例子: 1. 在函数返回时检测错误 这段代码中的函数将错 阅读全文
posted @ 2019-07-03 21:05 yuxi_o 阅读(5516) 评论(0) 推荐(0) 编辑
摘要: 反射就是程序能够在运行时检查变量和值,求出它们的类型。 reflect包实现运行时反射。 创建一个接收任何数据类型任何数值的查询string: func createQuery(q interface{}) string { } reflect.Type 表示 interface{} 的具体类型,而 阅读全文
posted @ 2019-07-03 20:58 yuxi_o 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 面向对象编程三大特点:封装、继承、多态。 1. 构造函数 Go中结构体实现封装。 Go不支持构造器。如果某类型的零值不可用,需要提供NewT(parameters)函数,用来初始化T类型的变量。按照Go的惯例,应该把创建T类型变量的函数命名为NewT(parameters),若一个包中只含有一种类型 阅读全文
posted @ 2019-07-03 20:49 yuxi_o 阅读(1169) 评论(0) 推荐(0) 编辑
摘要: 1. 错误 1.1 error类型 错误用内建的error类型来表示(go/src/builtin/builtin.go)。 type error interface { Error() string } error 有了一个签名为 Error() string 的方法。所有实现该接口的类型都可以当 阅读全文
posted @ 2019-07-03 20:46 yuxi_o 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 1. 标准输入输出 os提供了标准输入输出: 2. Scan 从键盘和标准输入os.Stdin读取输入,最简单的方法是使用fmt包提供的Scan和Sscan开头的函数。 Scanln 扫描来自标准输入的文本,将空格分隔的值依次存放到后续的参数内,直到碰到换行。 Scanf的第一个参数是格式串,其他都 阅读全文
posted @ 2019-07-03 20:37 yuxi_o 阅读(1316) 评论(0) 推荐(0) 编辑
摘要: 0. CSP--Communicating Sequential Process Don't communicate by sharing memory; share memory by communicating. CSP模型是上个世纪七十年代提出的,用于描述两个独立的并发实体通过共享的通讯 ch 阅读全文
posted @ 2019-07-03 20:29 yuxi_o 阅读(546) 评论(0) 推荐(0) 编辑