Go(也称为 Golang)是一门由 Google 开发的开源编程语言,以其简洁、高效、并发支持和强大的标准库而闻名。在观看了录播之后,结合网络上的教程,我写了以下指南,希望提供一个关于 Go 语言基础语法和常用特性的概述,用于入门这门强大的编程语言。
目录
- Hello, World!
- 变量和数据类型
- 控制流程
- 函数
- 包和可见性
- 数组、切片和映射
- 结构体和方法
- 并发编程
- 错误处理
- 常用的标准库
1. Hello, World!
从经典的 "Hello, World!" 程序开始:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
2. 变量和数据类型
Go 是一门静态类型语言,但可以使用类型推断来简化变量声明:
var name string = "Alice"
age := 30 // 自动推断为 int 类型
常用的数据类型包括:整数、浮点数、布尔型、字符串等。
3. 控制流程
Go 支持常见的控制流程语句:条件语句 if、循环语句 for、switch 等。
if age < 18 {
fmt.Println("未成年")
} else {
fmt.Println("成年人")
}
for i := 0; i < 5; i++ {
fmt.Println(i)
}
switch day {
case "Monday":
fmt.Println("星期一")
case "Tuesday":
fmt.Println("星期二")
// ...
default:
fmt.Println("其他")
}
4. 函数
函数是 Go 中的基本构建块。函数可以有多个参数和返回值。
func add(a, b int) int {
return a + b
}
sum := add(3, 5)
5. 包和可见性
Go 通过包(package)来组织代码。函数和变量可以是包内部的或者是可导出的(首字母大写)。
// 包内部可见
var internalVar int = 42
// 可导出的变量
var ExportedVar int = 100
6. 数组、切片和映射
Go 提供了数组、切片和映射来处理集合数据。
// 数组
var arr [3]int = [3]int{1, 2, 3}
// 切片
slice := []int{1, 2, 3, 4, 5}
// 映射
m := make(map[string]int)
m["one"] = 1
7. 结构体和方法
结构体允许您定义自己的复合数据类型,并为其定义方法。
type Person struct {
Name string
Age int
}
func (p Person) SayHello() {
fmt.Printf("Hello, I'm %s\n", p.Name)
}
p := Person{Name: "Bob", Age: 25}
p.SayHello()
8. 并发编程
Go 在语言级别支持并发编程,通过 Go 协程和通道(channel)实现。
func main() {
ch := make(chan int)
go func() {
ch <- 42
}()
value := <-ch
fmt.Println(value)
}
9. 错误处理
Go 鼓励使用多值返回来处理错误。
result, err := someFunction()
if err != nil {
fmt.Println("发生错误:", err)
} else {
fmt.Println("结果:", result)
}
10. 常用的标准库
Go 提供了丰富的标准库,涵盖了文件操作、网络编程、并发、时间等方面的功能。
import (
"fmt"
"net/http"
)
func main() {
resp, err := http.Get("https://example.com")
if err != nil {
fmt.Println("请求错误:", err)
return
}
defer resp.Body.Close()
// 处理响应
}
这只是 Go 语言的冰山一角。通过这份入门指南,可以开始了解 Go 语言的基础语法和常用特性,为进一步深入学习打下坚实的基础。要更深入地探索每个主题,建议查阅官方文档和其他资源。祝我们大家在 Go 编程之旅中取得成功!