
golang
文章平均质量分 92
点点吃得太多了
这个作者很懒,什么都没留下…
展开
-
通向Golang的捷径【21. Go 语言的实际应用】
在本章中, 将给出一些 Go 语言的实例, 其中将包含一些商用项目, 并会给出使用 Go 语言的理由, 同时 Go 语言已经正式发布了 2 年, 肯定存在一些我们不知道的内部商用项目正在使用 Go 语言.21.1 Heroku: 高效同步的数据存储集合官方页面为http://www.heroku.com/,Heroku 来自于 Silicon Valley 公司 (位于 San Francis...原创 2020-01-01 16:25:24 · 1070 阅读 · 0 评论 -
通向Golang的捷径【20. 使用 Go 语言的 GAE】
20.1 GAE 介绍GAE 即为谷歌 App 引擎 (Google App Engine), 是一种云计算的解决方案, 它可执行用户的 web 应用, 并将用户数据保存到 Google 架设的大量设备中, 而无须考虑服务器, 网络连接, 操作系统和数据存储等问题, 云端通常会被视为一个资源集合, 但它的维护只会交由 Google 来完成, 因此你只需开发自己的应用, 云端会将你的应用发送给用户...原创 2020-01-01 16:07:12 · 668 阅读 · 0 评论 -
通向Golang的捷径【19. 创建一个完整应用】
19.1 介绍本章将开发一个完整的应用 goto, 它是一个可上线的 web 应用, 来自于 Andrew Gerrand 的讲座, 这里将分三个阶段, 每个阶段都会追加一些功能, 以便展现 Go 语言的更多特性, 它比第 15 章给出的 web 应用更加复杂.• 第 1 版: 会使用一个 map 和一个结构, 以及 sync 包的 Mutex 和一个结构类型的创建工厂.• 第 2 版: 可...原创 2019-12-31 19:20:14 · 412 阅读 · 0 评论 -
通向Golang的捷径【18. 性能优化的代码示例】
18.1 字符串18.2 数组和 slice创建变量:18.3 map18.4 结构创建变量:使用结构变量名的第一个字母的大写, 可使结构变量能在包外被访问 (可见), 通常情况下, 最好使用一个工厂函数, 来定义结构变量, 有时需强制使用, 参见 10.2 节.18.5 接口18.6 函数18.7 文件18.8 并发协程和并发通道18.8.1 ...原创 2019-12-31 18:27:24 · 281 阅读 · 0 评论 -
通向Golang的捷径【17. 编程模式】
17.1 comma, ok在之前的章节中, 数次使用了 comma, ok 模式, 一个表达式可给出两个返回值, 第一个返回值可为数值或 nil,第二个返回值可为 true/false, 或是一个错误码, 在 if 条件中, 可给出初始化操作, 并能直接对操作结果进行测试 (即第二个返回值), 从而实现更简洁和优雅的代码, 这是 Go 代码中很重要的一类编程模式, 以下将总结它的用法:...原创 2019-12-31 18:10:06 · 350 阅读 · 0 评论 -
通向Golang的捷径【16. 常见的陷阱和误用】
在之前的章节中, 对一些误用给出了提示, 为了避免让用户在不同的章节中, 查找上述提示, 以下给出了 Go 语言的一些常见陷阱, 以方便查找:• 不要使用类似于 var p*a 的声明, 因为这将与指针声明和乘法操作相冲突 (4.9 节)• 不要在 for 循环中, 修改计数器变量 (5.4 节)• 在 for-range 条件中使用的数值, 不要在循环中进行修改 (5.4.4 节)• 不...原创 2019-12-31 17:48:39 · 513 阅读 · 0 评论 -
通向Golang的捷径【15. 网络, 模板和 web 应用】
Go 语言最适合编写 web 应用, 因为它没有提供 GUI 框架, 所以只能将包含字符串或模板的 HTML, 作为应用的输出窗口.15.1 tcp 服务器在本节中, 将使用 TCP 协议和并发协程, 开发一个简单的客户端-服务器应用, 一个 (web) 服务器应用需响应多个客户端的并发请求, 在 Go 语言中, 每个客户端请求都将生成一个并发协程, 并对请求进行处理, 同时还需要 net ...原创 2019-12-31 17:04:09 · 912 阅读 · 0 评论 -
通向Golang的捷径【14. 并发协程和并发通道】
作为一种 21 世纪的编程语言,Go 语言可实现应用程序之间的通讯 (比如网络通讯, cs 模式, 分布式计算等, 参见第 15 章), 同时也实现了并发应用, 也就是在不同的进程或计算机中, 可同步执行相同代码的不同部分, 实现并发程序的基本单元为并发协程 (goroutine) 和并发通道 (channel), 它们的实现需要语言, 编译器和运行时管理的多方支持, 同时 Go 语言的垃圾收集也...原创 2019-12-31 09:44:50 · 910 阅读 · 0 评论 -
通向Golang的捷径【13. 错误处理和测试】
Go 语言并无提供异常机制, 也就是 Java 或.NET 中出现的 try/catch 语句, 所以在 Go 语言中, 无法抛出异常, 而是使用了另一种机制, 延期-故障-恢复 (defer-panic-and-recover),Go 语言设计者认为 try/catch 机制有可能被滥用, 如果将底层异常抛向上层, 则会占用太多资源, 因此 Go 语言设计者使用另一种机制, 以使 Go 语言能...原创 2019-12-31 08:24:31 · 425 阅读 · 0 评论 -
通向Golang的捷径【12. 读取和写入】
除了 fmt 和 os 包之外, 还需要导入 bufio 包, 以实现带缓冲的输入和输出操作.12.1 读取用户输入从键盘或标准输入端 (即 os.Stdin), 可读取用户输入, 当然最简单的方式则是采用 fmt 包中, 给出 Scan-或Sscan-前缀的函数, 如下:例 12.1 readinput1.goScanln 可从标准输入端中, 读取文本输入, 并将连续出现的文本 (以...原创 2019-12-30 18:40:37 · 1474 阅读 · 0 评论 -
通向Golang的捷径【11. 接口和反射】
11.1 接口介绍Go 语言并不是一种经典的 OO 语言, 因为它并未提供类和继承, 同时它给出了更加灵活的接口机制, 其中包含了大量的面对对象的理念,Go 接口提供了一种对象行为的定义方法.一个接口可给出一组方法 (即方法集合), 而这些方法并未包含在代码中, 因为它们并未实现 (即抽象方法), 同时接口也不会包含变量, 而接口的定义格式如下:方法名加上 er(或 r) 后缀, 将得...原创 2019-12-30 17:36:30 · 664 阅读 · 0 评论 -
通向Golang的捷径【10. 结构与方法】
Go 语言支持用户自定义类型, 即结构和类型假名, 结构可用于描述物体的诸多属性, 同时它也是一种组合类型, 当需要定义一个包含多个属性的类型时, 可使用结构, 而每个结构元素都有自己的类型和数值, 以实现数据的编组保存, 同时这些结构元素又可通过一个入口实现访问, 因此结构也是一种数值类型, 所以可使用 new 函数进行创建.构成结构的数据元素又被称为数据域 (field), 每个数据域都包含...原创 2019-12-30 15:50:00 · 477 阅读 · 0 评论 -
通向Golang的捷径【9. 包】
9.1 标准库Go 语言发行版中, 包含了 150 个标准包, 其中包含大部分的基本功能, 比如 fmt,os 等, 这些包也被称为标准库, 除了一些底层包之外, 其他大部分包的文档, 都可在页面http://golang.org/pkg/中找到.在本书的大部分示例中, 都会使用到标准包, 并且附录中将包含标准包的索引表和相关用法, 本章将描述一些包函数的用法, 但是并不会讨论这些包函数的内...原创 2019-12-29 19:49:22 · 668 阅读 · 0 评论 -
通向Golang的捷径【8. map】
map 是一种特殊的数据结构, 也是一组元素对的无序集合, 元素对的一个元素被称为 key(键值), 另一个元素是与 key 关联的 value(数值或数据), 因此这类数据结构被称为关联数组或字典, 它可实现 value 的快速检索,即给出一个 key, 可快速获取到与 key 对应的 value.在大多数编程语言中, 也提供了类似的数据结构, 比如字典类型 (Python 语言为 dict ...原创 2019-12-29 19:02:01 · 299 阅读 · 0 评论 -
通向Golang的捷径【7. 数组和 slice】
从本章开始, 将学习一些可包含一组元素的数据结构, 也被称为数据集合, 比如数组 (切片,slice) 和 map, 这很显然是受到 Python 语言的影响.数组类型会使用[ ] 符号, 这也是大多数编程语言的基本类型, Go 语言的数组与其他语言基本类似, 但也有自己的一些特点, 它不具备 C 数组的动态特性, 如果需要类似功能, 需使用 Go 语言的 slice 类型, 该类型是一种基于 ...原创 2019-12-29 18:30:32 · 839 阅读 · 0 评论 -
通向Golang的捷径【6. 函数】
函数是 Go 语言中最基本的代码块, 它的用途广泛, 甚至可以说,Go 包含了函数语言的大多数特性, 本章将对4.2.2 节的内容进行扩展.6.1 介绍每个应用程序中都会一些函数, 由于 Go 代码的编译次序, 与程序包含的函数并无关系, 为了增加可读性, 最好从 main() 函数开始, 并基于一个逻辑次序, 来编写相关函数, 也就是调用次序.函数的主要目的, 是将一个大问题分割成一组小任...原创 2019-12-29 17:16:32 · 292 阅读 · 0 评论 -
通向Golang的捷径【5. 控制语句】
基于目前的学习阶段, 我们知道 Go 语言将从 main() 函数开始执行, 之后将执行该函数的语句, 但是我们希望在语句中, 增加一些判断条件, 因此 Go 语言提供了条件结构 (或分支结构).或是在一个迭代或循环结构中, 重复执行一些代码:同时还需要提供一些关键字, 如 break,continue, 可退出循环. 并且 return 关键字可退出一个程序块, 而 goto关键字可实现...原创 2019-12-29 16:07:51 · 252 阅读 · 0 评论 -
通向Golang的捷径【4. 基本结构和基本数据类型】
1ab(从数字开始), case(不能使用关键字), a+b(不允许使用操作符)原创 2019-12-28 18:44:58 · 2207 阅读 · 0 评论 -
通向Golang的捷径【3.编辑器,IDE 和其他工具】
由于 Go 是一种相当年轻的语言, 因此 IDE 的开发仍在进行中, 但有些编辑器已提供了 Go 语言的支持, 同时必须提供跨平台的特性, 在http://go-lang.cat-v.org/text-editors/页面中, 列出了支持 Go 语言的文本编辑器.3.1 Go 开发环境的基本需求一个开发环境需要实现一个简单的文本编辑器, 以及在命令行中可运行的编译和链接工具, 以下给出了开发...原创 2019-12-28 11:18:53 · 1849 阅读 · 0 评论 -
通向Golang的捷径【2.安装和环境配置】
#2.1 平台与架构Go 开发组为以下操作系统, 开发了编译器:• Linux• FreeBSD• OS X(或称 Darwin)同时 Go 编译器包含了两个版本:gc 和 gccgo, 它们都可工作在类 Unix 的操作系统中, gc 编译器已经移植到Windows 平台且公开发布了, 这两个编译器都采用单阶 (single pass) 编译方式.在以下软硬件平台上,Go 1 同时发...原创 2019-12-28 09:44:51 · 839 阅读 · 0 评论 -
通向Golang的捷径【1. Go 语言的起源, 特性和发展】
第 I 部分 学习 Go 语言的理由1 Go 语言的起源, 特性和发展1.1 起源和发展2007 年已开始酝酿 Go 语言,2009 年出现了 Go 语言的首个公开版本, Go 的初始设计开始于 2007 年 9 月 12日, 它是 Google 公司的一个附属项目 ( 花费每个工作日 20% 的时间, 来完成的项目), 并由三个著名的软件工程师来实现, Robert Griesemer(...原创 2019-12-28 09:43:50 · 667 阅读 · 0 评论 -
通向Golang的捷径【Top】
全文基于The.Way.to.Go.2012,于2016年7月完成,全文有点长,通常情况下,周末更新,谢谢关注,感谢马克飞象提供了一个超级棒的在线markdwon编辑器。前言更紧凑的代码量, 更快的编译速度和执行速度, 自然导致更多粉丝的追随.本书致力于给出 Go 语言的一个完整记录, 它将包含所有的 Go 资源, 比如在线文档, 博客信息, 书籍, 论文, 音频和视频资源, 笔者所掌握的软...原创 2019-12-28 09:33:16 · 273 阅读 · 0 评论