• Go 常量学习-可视化指南

    > Go 的类型常量和非类型常量是两个必须要了解的关键概念 不要忘记在文章下面有很多代码示例,因此你要确保点击这些链接并尝试运行这些程序。 ## 你为什么使用常量? ![why_might_you_use_constants?.image ](https://raw.githubusercontent.com/studygolang/gctt-images/master/go-const-guide/1*r734fn1RBz1c1J2cKM7ZGw.png) 你不想在代码...

  • 并发陷阱 2: 未完成的工作

    Jacob Walker 2019 年 4 月 18 日 ## 介绍 在我的第一篇文章 [Goroutine 泄露](https://studygolang.com/articles/17364) 中,我提到并发编程是一个很有用的工具,但是使用它也会带来某些非并发编程中不存在的陷阱。为了继续这个主题,我将介绍一个新的陷阱,这个陷阱叫做未完成的工作。当进程在非主协程的协程结束前终止时,这种陷阱就会发生。根据 Gorotine 的特性,强制关闭它将造成一个严重的问题。 ## 未完成...

  • Concurrency, Goroutines and GOMAXPROC

    William Kennedy 2014 年 1 月 29 日 ## 介绍 刚刚加入[GO-Minami](http://www.meetup.com/Go-Miami/) 组织的新人经常会说想学习更多有关 Go 并发的知识。并发好像在每个语言中都是热门话题,当然我第一次听说 Go 语言时也是因为这个点。而 Rob Pike 的一段 [GO Concurrency Patterns](http://www.youtube.com/watch?v=f6kdp27TYZs) 视频才让我真...

  • Go 读取控制台输入

    这是一个快速简单的教程,主要内容是如何在 Go 程序中读取控制台的输入。在这个教程中,我们将创建一个非常简单的脚本,这个脚本可以读取用户的输入并打印出来。 ## 读取整个句子 我们使用 `while` 循环,在 Go 语言中相当于没有任何参数的 `for` 循环,这样就可以让程序一直运行了。在这个例子中,每次输入一个字符串并按下 `enter` 键,我们会通过 `\n` 这个关键字符来区分字符串,如果你想对比刚才输入的字符串,我们还需要调用 replace 方法来去除掉 `\n` 然...

  • Go 接口(第三部分)

    本文介绍的是 Golang 接口主题的另一部分。主要内容包括接口中的方法,接口类型的值作为 map 中的 key,或者作为内置字段。 - 第一部分:https://studygolang.com/articles/14580 - 第二部分:https://studygolang.com/articles/15975 ## 方法和接口 Go 是有方法的概念的。可以通过调用类型 T 中的方法来获得一个函数,此函数可以从类型 T 中额外地获得明确的参数。 ```go typ...

  • Go 的多层切片

    我是一名程序员,我的工作内容是为美国不同地区的海洋天气预报加载多边形区域(polygons)。这些多边形需要存储在 MongoDB 中,而且还需要作特殊处理。本来也没什么难的,但是每个地区有很多个多边形区域。一个大的多边形区域还包含着 0-n 个多边形,并且它们之间需要维护一定的关系。 看了一会儿问题之后,我意识到我需要创建一个海洋预报地区的切片,每个地区包含一个多边形区域的切片。为了存储每一个多边形环线,我需要一个地理坐标切片。最后,每个坐标需要存储在二维的 float 数组中。 ...