GO语言入门指南:基础语法和常用解析特性
Go语言是一种静态类型、编译型的开发语言,具有简洁、高效、并发等特性。下面将列出Go语言的基础语法和常用特性,并配以代码举例。(第一次写,有不足之处请多多指出)
1. 变量和数据类型:
- Go语言中的变量声明使用关键字
var,可以显式指定变量类型,也可以由编译器自动推断。
var age int
name := "Alice"
- Go语言的基本数据类型包括整型、浮点型、布尔型、字符串等。
var num int = 10
var pi float64 = 3.14
var flag bool = true
var message string = "Hello, world!"
- Go语言还提供了复合数据类型,如数组、切片、映射、结构体等。
var arr [3]int = [3]int{1, 2, 3}
var slice []int = []int{4, 5, 6}
var m map[string]int = map[string]int{"a": 1, "b": 2}
type Person struct {
Name string
Age int
}
2. 控制流和循环:
- Go语言提供了条件语句
if-else、循环语句for等常见的控制流结构。
if age >= 18 {
fmt.Println("You are an adult.")
} else {
fmt.Println("You are a minor.")
}
for i := 0; i < 5; i++ {
fmt.Println(i)
}
3. 函数:
- 在Go语言中,函数是一等公民,可以作为参数、返回值等进行传递和处理。
- 函数的定义使用关键字
func,并指定函数名、参数列表和返回值类型。
func add(a, b int) int {
return a + b
}
result := add(3, 4)
fmt.Println(result) // 输出:7
4. 包和导入:
- Go语言通过包来组织代码,每个源文件都属于一个包,可以使用关键字
package进行声明。 - 导入其他包的代码使用关键字
import,可以导入标准库包或自定义的包。
package main
import (
"fmt"
"math/rand"
"myutils"
)
5. 并发和协程:
- Go语言原生支持并发编程,通过关键字
go可以启动一个协程(goroutine),它们在独立的线程中运行。 - 使用关键字
chan可以创建通道(channel),用于协程之间的通信和同步。
func printNumbers() {
for i := 1; i <= 5; i++ {
fmt.Println(i)
time.Sleep(time.Second)
}
}
func main() {
go printNumbers()
go printNumbers()
time.Sleep(6 * time.Second)
}
6. 错误处理:
- 在Go语言中,错误被视为值,可以通过返回值来表示函数执行过程中的错误情况。
- 使用
error类型来表示错误,并使用关键字errors.New创建新的错误。
import "errors"
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("division by zero")
}
return a / b, nil
}
result, err := divide(10, 0)
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println("Result:", result)
}