Hello, World
来源:https://yar999.gitbook.io/gopl-zh
编译
go run hello.go # 运行
go build hello.go # 编译
package main
import "fmt"
func main() {
fmt.Println("Hello, 世界")
}
命令行参数
package os
os.Args --> string slice 左闭右合 s[0:3] --> s{0,1,2}
troubles
当命名文件为*_test.go
时,会报错:go run: cannot run *_test.go files
原因: *_test.go是golang特有的约定,为测试文件。更换文件名即可
本章要点
指针: Go语言提供了指针。指针是可见的内存地址,&操作符可以返回一个变量的内存地址,并且*操作符可以获取指针指向的变量内容,但是在Go语言里没有指针运算,也就是不能像c语言里可以对指针进行加或减操作。
方法和接口: 方法是和命名类型关联的一类函数。Go语言里比较特殊的是方法可以被关联到任意一种命名类型。在第六章我们会详细地讲方法。接口是一种抽象类型,这种类型可以让我们以同样的方式来处理不同的固有类型,不用关心它们的具体实现,而只需要关注它们提供的方法。
包(packages): Go语言提供了一些很好用的package,并且这些package是可以扩展的。
多行注释可以用 /* ... */
来包裹,和其它大多数语言一样。
godoc这个工具可以让你直接在本地命令行阅读标准库的文档。
注释: 我们之前已经提到过了在源文件的开头写的注释是这个源文件的文档。在每一个函数之前写一个说明函数行为的注释也是一个好习惯。这些惯例很重要,因为这些内容会被像godoc这样的工具检测到,并且在执行命令时显示这些注释。