Menu
CoddyTech

包与导入

本课属于 Coddy GO 学习旅程的“面向对象编程”单元。第 3 课,共 107 课。

每个 Go 文件都以 package 声明开头。import 关键字会引入 Go 标准库中的包,这样你就可以使用其中的函数。

导入单个包

import "fmt"

使用导入块导入多个包

import (
    "fmt"
    "math"
    "strings"
)

使用导入的包中的函数时,以包名作为前缀

package main

import (
    "fmt"
    "strings"
    "math"
)

func main() {
    upper := strings.ToUpper("hello")
    fmt.Println(upper) // 输出:HELLO

    root := math.Sqrt(16)
    fmt.Println(root) // 输出:4
}

常用标准库包

"fmt"     // 格式化输入输出(Print、Scan、Sprintf)
"strings" // 字符串操作(ToUpper、Contains、Replace)
"math"    // 数学函数(Sqrt、Pow、Pi)
"strconv" // 字符串转换(Itoa、Atoi)

你可以使用 packagename.FunctionName 访问包中的函数。Go 只允许你导入实际使用的包:未使用的导入会导致编译错误。

challenge icon

挑战

中等

修复 utils.go 中的导入语句,让这些函数能够正常工作。你需要导入 strings 和 math 包:

  • FormatText 使用 strings.ToUpper
  • ContainsWord 使用 strings.Contains
  • SquareRoot 使用 math.Sqrt

亲手试试

package main

import (
    "bufio"
    "fmt"
    "os"
    "strconv"
    "strings"
)

func main() {
    scanner := bufio.NewScanner(os.Stdin)
    scanner.Scan()
    line := scanner.Text()

    parts := strings.Fields(line)
    numStr := parts[len(parts)-1]
    text := strings.Join(parts[:len(parts)-1], " ")
    num, _ := strconv.ParseFloat(numStr, 64)

    fmt.Printf("Upper: %s\n", FormatText(text))
    fmt.Printf("Contains 'world': %t\n", ContainsWord(text, "world"))
    fmt.Printf("Sqrt: %.2f\n", SquareRoot(num))
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

面向对象编程中的所有课

自己练习: Go 在线编译器