Menu
CoddyTech

在函数中使用指针

本课属于 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 时,函数会接收到一个指针,并且可以修改原变量。

challenge icon

挑战

入门

在这个挑战中,你将练习在函数中使用指针。你需要完成一个函数,该函数接收一个指向字符串的指针,并将字符串值改为大写。

函数 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)
}
quiz icon自我测试

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

基础知识中的所有课

自己练习: Go 在线编译器