Golang 学习笔记
前因
在处理一个庞大的数据集,Python的性能着实不够看。chr() 使用 Go 帮我写了一个简单的例子,我根据 Google 和文档补全了其他的功能。虽然他的代码很莽,但是也能够突出 Go 劲大的特点。
一个简单的 Go 程序
以传统的 Hello World 为例
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
Go 是一门编译型语言,Go 语言的工具链将源代码及其依赖转换成计算机的机器指令。Go 语言提供的工具都通过一个单独的命令 go
调用,go
命令有一系列子命令。最简单的一个是 go run
:
go run helloworld.go
理应出现
Hello World
代码本身
Go 通过包(package)组织(类似于 Python 中 modules 的概念),一个包由位于单个目录下的一个或多个.go
源代码文件组成,目录定义包的作用。每个源文件都以一条 package 声明语句开始(package main),表示该文件属于哪个包,紧跟着一系列导入(import)的包,之后是存储在这个文件里的程序语句。
main 包比较特殊。它定义了一个独立可执行的程序,而不是一个库。在 main 里的 main 函数也很特殊,它是整个程序执行时的入口。main 函数所做的事情就是程序做的。main 函数一般调用其它包里的函数完成很多工作(fmt.Println)。
必须告诉编译器源文件需要哪些包,这就是跟随在 package 声明后面的 import 声明扮演的角色。hello world例子只用到了一个包,大多数程序需要导入多个包。
必须恰当导入需要的包,缺少了必要的包或者导入了不需要的包,程序都无法编译通过。这项严格要求避免了程序开发过程中引入未使用的包。
import 声明必须跟在 package 声明之后。在此之后,则是组成程序的函数、变量、常量、类型的声明语句(分别由关键字 func、var、const、type 定义)。这些内容的声明顺序不重要。
一个函数的声明由 func 关键字、函数名、参数列表、返回值列表,以及包含在大括号里的函数体组成。