个人简介

Echo Blog


江湖无名 安心练剑
  • Go语言核心36讲-10通道的基本操作
    10 通道的基本操作 作为Go语言最有特色的数据类型,通道(channel)完全可以与goroutine(也可称为go程)并驾齐驱,共同代表Go语言独有的并发编程模式和编程哲学。 Don’t communicate by sharing memory; share memory by communicating. (不要通过共享内存来通信,而应该通过通信来共享内存。) 这是作为Go语言的...
    2015-01-01 15:20:27 | Go语言核心36讲
  • Go语言核心36讲-09字典的操作和约束
    09 字典的操作和约束 至今为止,我们讲过的集合类的高级数据类型都属于针对单一元素的容器。 它们或用连续存储,或用互存指针的方式收纳元素,这里的每个元素都代表了一个从属某一类型的独立值。 我们今天要讲的字典(map)却不同,它能存储的不是单一值的集合,而是键值对的集合。 什么是键值对?它是从英文key-value pair直译过来的一个词。顾名思义,一个键值对就代表了一对键和值。 注...
    2015-01-01 15:20:27 | Go语言核心36讲
  • Go语言核心36讲-08container包中的那些容器
    08 container包中的那些容器 我们在上次讨论了数组和切片,当我们提到数组的时候,往往会想起链表。 那么Go语言的链表是什么样的呢? Go语言的链表实现在标准库的 container/list 代码包中。 这个代码包中有两个公开的程序实体——List 和 Element,List实现了一个双向链表(以下简称链表),而Element则代表了链表中元素的结构。 那么,我今天的问...
    2015-01-01 15:20:27 | Go语言核心36讲
  • Go语言核心36讲-07数组和切片
    07 数组和切片 从本篇文章开始,我们正式进入了模块2的学习。在这之前,我们已经聊了很多的Go语言和编程方面的基础知识,相信你已经对Go语言的开发环境配置、常用源码文件写法,以及程序实体(尤其是变量)及其相关的各种概念和编程技巧(比如类型推断、变量重声明、可重名变量、类型断言、类型转换、别名类型和潜在类型等)都有了一定的理解。 它们都是我认为的Go语言编程基础中比较重要的部分,同时也是后...
    2015-01-01 15:20:27 | Go语言核心36讲
  • Go语言核心36讲-06程序实体的那些事儿(下)
    06 程序实体的那些事儿 (下) 在上一篇文章,我们一直都在围绕着可重名变量,也就是不同代码块中的重名变量,进行了讨论。 还记得吗?最后我强调,如果可重名变量的类型不同,那么就需要引起我们的特别关注了,它们之间可能会存在“屏蔽”的现象。 必要时,我们需要严格地检查它们的类型,但是怎样检查呢?咱们现在就说。 我今天的问题是:怎样判断一个变量的类型? 我们依然以在上一篇文章中展示过的d...
    2015-01-01 15:20:27 | Go语言核心36讲
  • Go语言核心36讲-05程序实体的那些事儿(中)
    05 程序实体的那些事儿(中) 在前文中,我解释过代码块的含义。Go语言的代码块是一层套一层的,就像大圆套小圆。 一个代码块可以有若干个子代码块;但对于每个代码块,最多只会有一个直接包含它的代码块(后者可以简称为前者的外层代码块)。 这种代码块的划分,也间接地决定了程序实体的作用域。我们今天就来看看它们之间的关系。 我先说说作用域是什么?大家都知道,一个程序实体被创造出来,是为了让别...
    2015-01-01 15:20:27 | Go语言核心36讲
  • Go语言核心36讲-04程序实体的那些事儿(上)
    04 程序实体的那些事儿(上) 我已经为你打开了Go语言编程之门,并向你展示了“程序从初建到拆分,再到模块化”的基本演化路径。 一个编程老手让程序完成基本演化,可能也就需要几十分钟甚至十几分钟,因为他们一开始就会把车开到模块化编程的道路上。 我相信,等你真正理解了这个过程之后,也会驾轻就熟的。 上述套路是通用的,不是只适用于Go语言。但从本篇开始,我会开始向你介绍Go语言中的各种特性...
    2015-01-01 15:20:27 | Go语言核心36讲
  • Go语言核心36讲-03库源码文件
    03 库源码文件 你已经使用过Go语言编写了小命令(或者说微型程序)吗? 当你在编写“Hello, world”的时候,一个源码文件就足够了,虽然这种小玩意儿没什么用,最多能给你一点点莫名的成就感。 如果你对这一点点并不满足,别着急,跟着学,我肯定你也可以写出很厉害的程序。 我们在上一篇的文章中学到了命令源码文件的相关知识,那么除了命令源码文件,你还能用Go语言编写库源码文件。那么什...
    2015-01-01 15:20:27 | Go语言核心36讲