Trong Go, mảng được sử dụng để lưu trữ một tập hợp dữ liệu có độ dài cố định cùng loại. Để quản lý dữ liệu này một cách hiệu quả, bạn thường cần truyền mảng cho các hàm. Ở bài viết này, chúng ta sẽ tìm hiểu cách truyền mảng cho hàm trong Golang.
Ví dụ:
package main
import "fmt"
// Hàm tính trung bình của một mảng
func calculateAverage(arr [6]int, size int) int {
var sum int
for _, value := range arr {
sum += value
}
return sum / size
}
func main() {
scores := [6]int{67, 59, 29, 35, 4, 34}
average := calculateAverage(scores, len(scores))
fmt.Printf("%d\n", average)
}
Kết quả:
38
Giải thích chi tiết về cách chuyển mảng vào hàm trong Golang
Trong ví dụ này, hàm calculateAverage() lấy một mảng số nguyên và kích thước của nó làm đối số. Nó tính toán giá trị trung bình của các phần tử mảng và trả về giá trị đó. Hàm chính khởi tạo một mảng có tên là scores và gọi hàm tính giá trị trung bình.
Các điểm chính:
Khai báo mảng:
Sử dụng cú pháp var arrayName [size]type để khai báo một mảng.
var numbers [5]int // Một mảng gồm 5 số nguyên
Truyền mảng:
Trong Go, mảng được truyền cho hàm theo giá trị, nghĩa là hàm nhận được một bản sao của mảng. Những thay đổi được thực hiện bên trong hàm không ảnh hưởng đến mảng gốc.
Con trỏ để sửa đổi mảng gốc:
Nếu muốn sửa đổi mảng gốc, bạn nên truyền một con trỏ đến mảng đó.
func modifyArray(arr *[5]int) {
for i := range arr {
arr[i] += 10 // Tăng mỗi phần tử lên 10
}
}
Chỉnh sửa một mảng trong Golang
Ví dụ:
package main
import "fmt"
// Hàm tăng mỗi phần tử của mảng này
func incrementArray(arr *[5]int) {
for i := range arr {
arr[i]++ // Increment each element by 1
}
}
func main() {
values := [5]int{1, 2, 3, 4, 5}
// Chỉnh sửa mảng
incrementArray(&values)
fmt.Println("Incremented array:", values)
}
Kết quả:
Mảng tăng dần: [2 3 4 5 6]
Truyền mảng cho các hàm trong Go cho phép quản lý dữ liệu hiệu quả. Hiểu cách truyền và sửa đổi mảng sẽ giúp bạn viết các chương trình Go hiệu quả.