Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Trong Golang , hàm là nhóm câu lệnh được sử dụng để thực hiện các tác vụ, với giá trị trả về tùy chọn. Go hỗ trợ hai cách chính để truyền đối số: Truyền theo giá trị và Truyền theo tham chiếu. Go mặc định sử dụng truyền theo giá trị.

Các thuật ngữ cơ bản trong truyền tham số cho hàm:
Ví dụ
package main
import "fmt"
// Cố gắng sửa đổi giá trị của num
func modify(num int) {
num = 50
}
func main() {
num := 20
fmt.Printf("Before, num = %d\n", num)
modify(num)
fmt.Printf("After, num = %d\n", num)
}
Trong ví dụ này, num vẫn không thay đổi sau khi gọi modify vì nó được truyền theo giá trị.
Cú pháp
func functionName(param Type) {
// function body # Gọi theo giá trị
}
func functionName(param *Type) {
// function body # Gọi theo tham chiếu
}
Trong call-by-value, một bản sao của giá trị tham số thực tế được truyền qua. Những thay đổi được thực hiện trong hàm không ảnh hưởng đến biến gốc.
Cú pháp
func functionName(param Type) {
// function body
}
Ví dụ:
package main
import "fmt"
// Chỉnh sửa giá trị của num
func modify(num int) {
num = 50
}
func main() {
num := 20
fmt.Printf("Before, num = %d\n", num)
modify(num)
fmt.Printf("After, num = %d\n", num)
}
Kết quả:
Before, num = 20 After, num = 20
Giá trị vẫn giữ nguyên, vì các thay đổi bên trong modify không ảnh hưởng đến num trong main.
Trong call-by-reference, một con trỏ đến tham số thực tế được truyền, do đó bất kỳ thay đổi nào bên trong hàm đều phản ánh trên biến gốc.
Cú pháp
func functionName(param *Type) {
// function body
}
Ví dụ:
package main
import "fmt"
// Chỉnh sửa giá trị của num qua tham chiếu
func modify(num *int) {
*num = 50
}
func main() {
num := 20
fmt.Printf("Before, num = %d\n", num)
modify(&num)
fmt.Printf("After, num = %d\n", num)
}
Kết quả
Before, num = 20 After, num = 50
Vì num được truyền theo tham chiếu nên lệnh modify sẽ thay đổi giá trị của nó, điều này được phản ánh trong lệnh main.
Nguồn tin: Quantrimang.com:
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Quy trình làm việc nâng cao và các trường hợp ngoại lệ trong Copilot Cowork
Hướng dẫn biến video thành bài giảng tương tác thú vị
Làm chủ phiên Claude Code
5 điều bạn cần biết trước khi sử dụng OpenClaw
Cách tạo Sticker em bé bằng ChatGPT Images 2.0
Prompt tạo ảnh thiết kế tóc theo khuôn mặt trên ChatGPT Images 2.0
Khắc phục câu trả lời sai trong 10 giây trong phiên Claude Code
Framework quyết định 5 bước sau mỗi phiên Claude Code
5 repository GitHub giúp bạn học Quantum Machine Learning từ cơ bản đến nâng cao
Prompt xử lý email, gợi ý phản hồi bằng ChatGPT
Nguyên nhân làm quá trình nén dữ liệu Claude Code có chất lượng kém (và cách phòng tránh)
Hướng dẫn tạo bài tập điền từ vào chỗ trống trên Twee
6 cách nhận biết ảnh AI giả nhanh và chính xác
Hướng dẫn tạo giọng đọc lồng tiếng cho slide bài giảng
Giữa hai mùa im lặng
Người lạ, có quen!
Karaoke Mùa băng giá - Beat Midi
Hướng dẫn cách sao lưu n8n Workflow
Hướng dẫn tạo slide thuyết trình trên TeraBox
Xây dựng thư viện prompt của bạn