包与导入
本课属于 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 只允许你导入实际使用的包:未使用的导入会导致编译错误。
挑战
中等修复 utils.go 中的导入语句,让这些函数能够正常工作。你需要导入 strings 和 math 包:
FormatText使用strings.ToUpperContainsWord使用strings.ContainsSquareRoot使用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))
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
面向对象编程中的所有课
自己练习: Go 在线编译器