ToolkitX
知识库工具箱

Go 基础入门

安装、变量、函数、包管理

20min·入门

01. Go 语言基础

Go(Golang)是 Google 开发的静态类型编译语言,以简洁、高效和并发支持著称。 Go 的特点: - 静态类型,编译型语言 - 内置并发支持(goroutine 和 channel) - 垃圾回收 - 强大的标准库 - 快速编译
go
package main

import "fmt"

// 函数定义
func greet(name string) string {
return "你好," + name + "!"
}

// 多返回值
func divide(a, b float64) (float64, error) {
if b == 0 {
    return 0, fmt.Errorf("除数不能为零")
}
return a / b, nil
}

func main() {
fmt.Println(greet("Go 开发者"))

result, err := divide(10, 3)
if err != nil {
    fmt.Println("错误:", err)
} else {
    fmt.Printf("结果: %.2f\n", result)
}
}

02. Goroutine 并发

Goroutine 是 Go 的轻量级线程,由 Go 运行时管理。创建 goroutine 只需在函数调用前加 go 关键字。 Channel 是 goroutine 之间通信的管道。使用 <- 操作符发送和接收数据。带缓冲的 channel 可以在满之前非阻塞地发送数据。
go
package main

import (
"fmt"
"time"
)

func worker(id int, jobs <-chan int, results chan<- int) {
for j := range jobs {
    fmt.Printf("工人 %d 开始处理任务 %d\n", id, j)
    time.Sleep(time.Second)
    results <- j * 2
}
}

func main() {
jobs := make(chan int, 5)
results := make(chan int, 5)

// 启动 3 个工人
for w := 1; w <= 3; w++ {
    go worker(w, jobs, results)
}

// 发送任务
for j := 1; j <= 5; j++ {
    jobs <- j
}
close(jobs)

// 收集结果
for r := 1; r <= 5; r++ {
    fmt.Println("结果:", <-results)
}
}
Goroutine 非常轻量,初始栈只有几 KB,可以轻松创建成千上万个 goroutine。

知识测验

1/5正确 0

如何在 Go 中创建 goroutine?

下一节

结构体与方法

下一节