Menu
CoddyTech

Dùng con trỏ trong hàm

Thuộc phần Kiến thức nền tảng trong hành trình GO của Coddy. Bài học 64 trên 109.

Hàm có thể nhận và thay đổi biến thông qua con trỏ. Nhờ đó, hàm có thể thay đổi giá trị ban đầu, không chỉ bản sao.

Tạo một hàm thay đổi giá trị thông qua con trỏ:

func main() {
    number := 10
    fmt.Println("Before:", number)
    
    // Truyền địa chỉ của number
    doubleValue(&number)
    
    fmt.Println("After:", number)
}

func doubleValue(num *int) {
    // Thay đổi giá trị tại địa chỉ mà con trỏ trỏ đến
    *num = *num * 2
}

Đầu ra cho thấy giá trị đã thay đổi nhờ hàm:

Before: 10
After: 20

Khi truyền &number, hàm nhận một con trỏ và có thể sửa đổi biến ban đầu.

challenge icon

Thử thách

Người mới

Trong thử thách này, bạn sẽ luyện tập sử dụng con trỏ trong các hàm. Bạn cần hoàn thành một hàm nhận con trỏ đến một chuỗi và chuyển giá trị chuỗi đó thành chữ hoa.

Hàm makeUppercase đã được định nghĩa sẵn cho bạn. Nhiệm vụ của bạn là sửa đổi chuỗi mà con trỏ trỏ đến bằng cách sử dụng hàm strings.ToUpper().

Tự làm thử

package main

import (
	"fmt"
	"strings"
)

// makeUppercase nhận một con trỏ đến chuỗi và chuyển chuỗi thành chữ hoa
func makeUppercase(strPtr *string) {
	// TODO: Dùng strings.ToUpper() để chuyển chuỗi mà strPtr trỏ đến thành chữ hoa
	// Gợi ý: Bạn cần giải tham chiếu con trỏ để truy cập giá trị chuỗi
	? = strings.ToUpper(?)
	
}

func main() {
	// Chúng ta đã có một biến chuỗi
	message := "hello, world"
	
	// In ra thông điệp ban đầu
	fmt.Printf("Original message: %s\n", message)
	
	// Gọi makeUppercase với địa chỉ của message
	makeUppercase(&message)
	
	// In ra thông điệp sau khi thay đổi
	fmt.Printf("Modified message: %s\n", message)
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch Go online