摘要:
我们在上次讨论了数组和切片,当我们提到数组的时候,往往会想起链表。那么Go语言的链表是什么样的呢? Go语言的链表实现在标准库的container/list代码包中。这个代码包中有两个公开的程序实体——List和Element,List实现了一个双向链表(以下简称链表),而Element则代表了链表 阅读全文
摘要:
从本篇文章开始,我们正式进入了模块2的学习。在这之前,我们已经聊了很多的Go语言和编程方面的基础知识,相信你已经对Go语言的开发环境配置、常用源码文件写法,以及程序实体(尤其是变量)及其相关的各种概念和编程技巧(比如类型推断、变量重声明、可重名变量、类型断言、类型转换、别名类型和潜在类型等)都有了一 阅读全文
摘要:
在上一篇文章,我们一直都在围绕着可重名变量,也就是不同代码块中的重名变量,进行了讨论。 还记得吗?最后我强调,如果可重名变量的类型不同,那么就需要引起我们的特别关注了,它们之间可能会存在“屏蔽”的现象。 必要时,我们需要严格地检查它们的类型,但是怎样检查呢?咱们现在就说。 我今天的问题是:怎样判断一 阅读全文
摘要:
在前文中,我解释过代码块的含义。Go语言的代码块是一层套一层的,就像大圆套小圆。 一个代码块可以有若干个子代码块;但对于每个代码块,最多只会有一个直接包含它的代码块(后者可以简称为前者的外层代码块)。 这种代码块的划分,也间接地决定了程序实体的作用域。我们今天就来看看它们之间的关系。 我先说说作用域 阅读全文
摘要:
你已经使用过Go语言编写了小命令(或者说微型程序)吗? 当你在编写“Hello, world”的时候,一个源码文件就足够了,虽然这种小玩意儿没什么用,最多能给你一点点莫名的成就感。如果你对这一点点并不满足,别着急,跟着学,我肯定你也可以写出很厉害的程序。 我们在上一篇的文章中学到了命令源码文件的相关 阅读全文
摘要:
我已经为你打开了Go语言编程之门,并向你展示了“程序从初建到拆分,再到模块化”的基本演化路径。 一个编程老手让程序完成基本演化,可能也就需要几十分钟甚至十几分钟,因为他们一开始就会把车开到模块化编程的道路上。我相信,等你真正理解了这个过程之后,也会驾轻就熟的。 上述套路是通用的,不是只适用于Go语言 阅读全文
摘要:
【Go语言代码较多,建议配合文章收听音频。】 你好,我是郝林。从今天开始,我将和你一起梳理Go语言的整个知识体系。 在过去的几年里,我与广大爱好者一起见证了Go语言的崛起。 从Go 1.5版本的自举(即用Go语言编写程序来实现Go语言自身),到Go 1.7版本的极速GC(也称垃圾回收器),再到201 阅读全文
摘要:
我们已经知道,环境变量GOPATH指向的是一个或多个工作区,每个工作区中都会有以代码包为基本组织形式的源码文件。 这里的源码文件又分为三种,即:命令源码文件、库源码文件和测试源码文件,它们都有着不同的用途和编写规则。( 我在“预习篇”的基础知识图介绍过这三种文件的基本情况。) (长按保存大图查看) 阅读全文
摘要:
你好,我是郝林,今天我分享的主题是,学习专栏的正确姿势。 到了这里,专栏的全部内容已经都推送到你的面前了。如果你已经同步学习完了,那么我要给你点一个大大的赞! 还没有看完的同学也不要着急,因为推送的速度肯定要比你们的学习速度快上不少。如果是我的话,我肯定无法用很快的速度,去认真地学习和理解专栏内容的 阅读全文
摘要:
你好,我是郝林,今天我分享的内容是:0基础的你,如何开始入门学习Go语言。 1. 你需要遵循怎样的学习路径来学习Go语言? 我们发现,订阅本专栏的同学们都在非常积极的学习和讨论,这让我们非常欣慰,并且和你一样干劲十足。不过,我在留言中发现,大家的基础好像都不太一样,大致可以分为这么几类。 零基础的同 阅读全文
摘要:
你好,我是郝林。今天想跟你聊聊我和Go语言的故事。 Go语言是由Google出品的一门通用型计算机编程语言。作为在近年来快速崛起的编程语言,Go已经成功跻身主流编程语言的行列。 它的种种亮点都受到了广大编程爱好者的追捧。特别是一些对团队协作有较高要求的公司和技术团队,已经在有意识地大量使用Go语言编 阅读全文
摘要:
http://turnoff.us/geek/forked/ https://doocs.github.io/leetcode/#/solution/0000-0099/0052.N-Queens%20II/README http://3ms.huawei.com/km/groups/3873013 阅读全文