历史背景
软件开发的挑战:1.多核硬件架构 2.超大规模分布式计算集群 3. Web 模式导致的前所未有的开发规模和更新速度。
语言特性
命令
命令 | 用法 |
---|
go run [文件名].go | 编译源码,并且直接执行源码的 main() 函数,不会在当前目录留下可执行文件。 |
go build [文件名].go | 编译源码,在当前目录留下可执行文件。 |
代码
基本程序结构
package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}
应用程序入口
- 必须是 main 包:package main
- 必须是 main 方法:func main()
- 文件名不一定是 mian.go
关键词
常用导入包
fmt 包
实现格式化输入输出的包。
net 包
方法 | 用法 | 示例 |
---|
net.Listen(network, address string) | 监听本地网络地址的广播。 | listener, error := net.Listen("tcp", ":10086") |
log 包
方法 | 用法 | 示例 |
---|
log.Fatalf(format string, v ...interface{}) | 控制台输出报错。 | log.Fatalf("failed to listen: %v", err) |
测试
- 测试源码文件以 _test 结尾:
xxx_test.go
- 测试方法名以 Test 开头。
func TestXXX(t *testing.T) {...}