Go 语言入门指南:基础语法和常用特性解析 | 青训营

56 阅读2分钟

Go 语言入门指南

简介

Go 是一门开源的静态类型编程语言,由 Google 开发。它的设计目标是提供一种简单、高效、可靠的编程语言。

基础语法

变量

Go 语言中的变量定义方式为 var 变量名 变量类型,例如:

var name string
var age int

也可以使用 := 运算符进行变量声明和赋值:

name := "Alice"
age := 20

函数

Go 语言中的函数定义方式为 func 函数名(参数列表) 返回值类型 { 函数体 },例如:

func add(a, b int) int {
    return a + b
}

控制流语句

Go 语言中的控制流语句包括:if、for、switch 和 select。

if

if 语句的基本格式为:

if condition {
    // do something
} else {
    // do something else
}

for

for 语句的基本格式为:

for initialization; condition; increment {
    // do something
}

switch

switch 语句的基本格式为:

switch expression {
case value1:
    // do something
case value2:
    // do something else
default:
    // do something if no case matches
}

select

select 语句用于从多个通道中接收值,其基本格式为:

select {
case <- channel1:
    // do something
case <- channel2:
    // do something else
}

常用特性解析

并发

Go 语言具有原生的并发支持,可以使用 goroutine 进行并发编程。

goroutine 是轻量级的线程,可以通过关键字 go 启动一个 goroutine:

go func() {
    // do something concurrently
}()

通道

Go 语言中的通道用于在 goroutine 之间传递数据,通道有两种类型:带缓冲的通道和无缓冲的通道。

无缓冲的通道在发送数据时会被阻塞,直到有接收者接收数据。带缓冲的通道则可以缓存一定数量的数据,当缓冲区已满时才会被阻塞。

创建一个无缓冲的通道:

ch := make(chan int)

创建一个带缓冲的通道:

ch := make(chan int, 10)

向通道发送数据:

ch <- 10

从通道接收数据:

x := <- ch

defer

defer 语句用于延迟函数的执行,直到包含该语句的函数执行完毕。defer 语句可以用于资源的释放、异常处理等场景。

func main() {
    defer fmt.Println("deferred statement")
    fmt.Println("normal statement")
}
// 输出:
// normal statement
// deferred statement

错误处理

Go 语言中的错误处理机制使用返回值来表示错误。通常情况下,函数的最后一个返回值是一个 error 类型的值,表示函数执行是否成功。

func doSomething() error {
    // do something
    if err != nil {
        return err
    }
    return nil
}

在调用函数时,通常需要检查其返回值是否为 nil,表示调用是否成功:

if err := doSomething(); err != nil {
    // handle error
}

结论

Go 语言是一门简单、高效、可靠的编程语言,具有原生的并发支持和简洁的语法特性。掌握 Go 语言的基础语法和常用特性可以帮助开发者更高效地编写代码。