在函数中使用指针
本课属于 Coddy GO 学习旅程的“基础知识”单元。第 64 课,共 109 课。
函数可以通过指针接收并修改变量。这样函数就能更改原始值,而不只是副本。
创建一个通过指针修改值的函数:
func main() {
number := 10
fmt.Println("Before:", number)
// 传入 number 的地址
doubleValue(&number)
fmt.Println("After:", number)
}
func doubleValue(num *int) {
// 修改指针所指地址中的值
*num = *num * 2
}输出显示函数更改后的值:
Before: 10
After: 20传入 &number 时,函数会接收到一个指针,并且可以修改原变量。
挑战
入门在这个挑战中,你将练习在函数中使用指针。你需要完成一个函数,该函数接收一个指向字符串的指针,并将字符串值改为大写。
函数 makeUppercase 已经为你定义好了。你的任务是使用 strings.ToUpper() 函数,将指针指向的字符串改为大写。
亲手试试
package main
import (
"fmt"
"strings"
)
// makeUppercase 接收一个指向字符串的指针,并将字符串转换为大写
func makeUppercase(strPtr *string) {
// TODO: 使用 strings.ToUpper() 将 strPtr 指向的字符串转换为大写
// 提示:你需要解引用指针,才能访问字符串的值
? = strings.ToUpper(?)
}
func main() {
// 我们已经有一个字符串变量
message := "hello, world"
// 打印原始的 message
fmt.Printf("Original message: %s\n", message)
// 将 message 的地址传给 makeUppercase 并调用它
makeUppercase(&message)
// 打印修改后的 message
fmt.Printf("Modified message: %s\n", message)
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Go 在线编译器