1.1 golang简介

2 阅读2分钟

1.1 Go 语言简介

Go 是什么?

Go(又称 Golang)是 Google 于 2009 年发布的开源编程语言,由 Robert Griesemer、Rob Pike 和 Ken Thompson 设计。Go 的目标是在接近 C 语言级别性能的同时,提供现代语言的开发效率。

设计哲学

Go 的核心设计理念可以用三个词概括:简洁、高效、并发

特性说明
简洁关键字仅 25 个,语法极简,没有继承、没有泛型(1.18 前)、没有异常
高效编译型语言,编译速度极快,生成原生机器码
并发goroutine 和 channel 是语言级别的并发原语
工具链自带格式化(go fmt)、测试(go test)、文档(go doc)等工具
静态类型编译期类型检查,同时又有类型推断的便利

与其他语言的对比

特性GoPythonJavaC
编译/解释编译解释编译+VM编译
并发支持goroutine线程/GIL线程线程
垃圾回收
学习曲线
执行性能中高最高
部署难度极低

Go 最大的优势之一是部署极简——编译后只有一个二进制文件,不依赖任何运行时环境。

Go 程序的基本结构

// 每个 Go 文件必须声明所属的包
package main
// import 导入需要使用的包
import (
    "fmt"
)

// main 函数是程序的入口点
func main() {
    fmt.Println("Hello, Go!")
}

让我们逐行解析:

  1. package main — 声明这个文件属于 main 包。可执行程序必须有一个 main

  2. import "fmt" — 导入标准库的 fmt 包,用于格式化输入输出

  3. func main() — 程序执行的入口函数,main 包中必须有一个 main 函数

常用命令

# 运行程序(编译 + 执行,不生成文件)
go run main.go
# 编译生成可执行文件
go build main.go
# 格式化代码(Go 有统一的代码风格)
go fmt main.go
# 查看文档
go doc fmt.Println
# 初始化模块
go mod init <module-name>

代码风格约定

Go 有一些强制性的代码风格,不遵守会编译报错:

1. 左大括号不能换行

// ✅ 正确
func main() {
    fmt.Println("Hello")
}

// ❌ 错误:这会编译报错!
func main()
{
    fmt.Println("Hello")
}

2. 导入的包必须使用

// ✅ 正确
import "fmt"
fmt.Println("Hello")

// ❌ 错误:导入了 "os" 但没有使用,编译会报错
import "os"

3. 声明的变量必须使用

// ✅ 正确
x := 10
fmt.Println(x)

// ❌ 错误:声明了 y 但没有使用,编译会报错
y := 20

小结

  • Go 追求简洁,语法少但表达力强

  • 编译速度快,部署简单(单一二进制文件)

  • 内置并发支持,非常适合网络服务开发

  • 强制代码风格,团队协作效率高