Go 语言实战 第 1 章 关于 Go 语言的介绍

编译

编译 Go 程序时,编译器只会关注那些直接被引用的库。

goroutine

Go 语言对并发的支持是这门语言最重要的特性之一。 goroutine 很像线程,但是它占用的内存远少于线程,使用它需要的代码更少。
goroutine 是可以与其它 goroutine 并行执行的函数,同时也会与主程序(程序的入口)并行执行。

func log(msg string) {
    ...
}

go log('发生了可怕的事情')
  

通道

通道(channel)是一种内置的数据结构,可以让用户在不同的 goroutine 之间同步发送具有类型的消息。
需要强调的是,通道并不提供跨 goroutine 的数据访问保护机制。
如果读和写是由不同的 goroutine 完成的,每个 goroutine 依旧需要额外的同步动作。

Go 开发者使用组合(composition)设计模式,只需简单地将一个类型嵌入到另一个类型,就能复用所有的功能。

接口

接口用于描述类型的行为。如果一个类型的实例实现了一个接口,意味着这个实例可以执行一组特定的行为。
你甚至不需要去声明这个实例实现某个接口,只需要实现这组行为就好。
这和传统的面向对象编程语言的接口系统有本质的区别。
Go 语言的接口更小,只倾向于定义一个单一的动作。

你好,Go

package main

import "fmt"

func main() {
    fmt.Println("Hello world!")
}
  

小结

  • Go 语言是现代的、快速的,带有一个强大的标准库。
  • Go 语言内置对并发的支持。
  • Go 语言使用接口作为代码复用的基础模块。