Hàm - Function trong Go

Trong Go, hàm - function là các khối mã thực hiện các tác vụ cụ thể, có thể được sử dụng lại trong toàn bộ chương trình để tiết kiệm bộ nhớ, cải thiện khả năng đọc và tiết kiệm thời gian. Hàm Golang có thể hoặc không thể trả về giá trị cho người gọi.

Hàm trong Golang

Ví dụ:

package main
import "fmt"

// multiply() nhân 2 số nguyên và trả về kết quả
func multiply(a, b int) int {
    return a * b
}

func main() {
    result := multiply(5, 10)
    fmt.Printf("multiplication: %d", result)
}

Kết quả:

multiplication: 50

Cú pháp hàm trong Golang

func function_name(Parameter-list)(Return_type) {
    // function body...
}

Khai báo hàm

Trong Go, một hàm được khai báo bằng từ khóa func, theo sau là tên, tham số và kiểu trả về tùy chọn.

Cú pháp

func function_name(Parameter-list)(Return_type) {
    // function body...
}

Ví dụ hàm multiply

func multiply(a, b int) int {
    return a * b
}

func: Từ khóa để khai báo một hàm.
function_name: Tên của hàm, ví dụ: nhân.
Parameter-list: a, b int—các tham số cùng với kiểu của chúng.
Return_type: int chỉ định kiểu trả về.

Gọi hàm

Để sử dụng một hàm, chỉ cần gọi hàm đó theo tên của nó với bất kỳ đối số cần thiết nào. Ở đây, multiply(5, 10) gọi hàm với 510 làm đối số.

Ví dụ

result := multiply(5, 10)
fmt.Printf("Result of multiplication: %d", result)

Đối số hàm

Go hỗ trợ hai cách để truyền tham số cho hàm: Gọi theo giá trị và Gọi theo tham chiếu. Theo mặc định, Go sử dụng gọi theo giá trị, nghĩa là các giá trị được sao chép và các thay đổi bên trong hàm không ảnh hưởng đến các biến của người gọi.

Gọi theo giá trị

Trong lệnh gọi theo giá trị, giá trị của các đối số được sao chép vào các tham số hàm, do đó thay đổi trong hàm không ảnh hưởng đến các biến gốc.

Ví dụ:

package main
import "fmt"

func multiply(a, b int) int {
    a = a * 2 // chỉnh sửa bên trong hàm này
    return a * b
}

func main() {
    x := 5
    y := 10
    fmt.Printf("Before: x = %d, y = %d\n", x, y)
    result := multiply(x, y)
    fmt.Printf("multiplication: %d\n", result)
    fmt.Printf("After: x = %d, y = %d\n", x, y)
}

Kết quả:

Before: x = 5, y = 10
multiplication: 100
After: x = 5, y = 10

Gọi theo tham chiếu

Trong lệnh gọi theo tham chiếu, các con trỏ được sử dụng để các thay đổi bên trong hàm phản ánh ở các biến của người gọi.

Ví dụ:

package main
import "fmt"

func multiply(a, b *int) int {
    *a = *a * 2 // chỉnh sửa giá trị của a ở địa chỉ bộ nhớ của nó
    return *a * *b
}

func main() {
    x := 5
    y := 10
    fmt.Printf("Before: x = %d, y = %d\n", x, y)
    result := multiply(&x, &y)
    fmt.Printf("multiplication: %d\n", result)
    fmt.Printf("After: x = %d, y = %d\n", x, y)
}

Kết quả

Before: x = 5, y = 10
multiplication: 100
After: x = 10, y = 10
Thứ Hai, 17/03/2025 09:19
51 👨 76
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo
❖
    Chia sẻ
    Chia sẻ FacebookChia sẻ Twitter
    Đóng