Hàm ẩn danh trong Golang

Hàm ẩn danh trong Go rất hữu ích. Dưới đây là cú pháp, cách dùng và ví dụ minh họa về việc sử dụng hàm ẩn danh trong Golang.

Hàm ẩn danh trong Golang

Hàm ẩn danh (anonymous) là hàm không có tên. Nó hữu ích khi bạn muốn tạo một hàm nội tuyến. Trong Go, hàm ẩn danh cũng có thể tạo thành một closure. Hàm ẩn danh cũng được gọi là hàm literal.

Ví dụ:

package main
import "fmt"

func main() {
    // Hàm ẩn danh
    func() {
        fmt.Println("Welcome! to Quantrimang.com")
    }()
}

Kết quả:

Welcome! to Quantrimang.com

Cú pháp:

func(parameter_list)(return_type) {
    // code..

    // Dùng lệnh return nếu return_type được đưa ra
    // nếu return_type không được cung cấp, thì không
    // dùng lệnh return
    return
}()

Gán 1 biến

Bạn có thể gán một hàm ẩn danh cho một biến. Biến này sau đó có thể được gọi như một hàm thông thường.

package main
import "fmt"

func main() {
    // Gán một hàm ẩn danh cho một biến
    value := func() {
        fmt.Println("Welcome! to Quantrimang.com")
    }
    value()
}

Kết quả:

Welcome! to Quantrimang.com

Chuyển dưới dạng đối số

Bạn cũng có thể truyền một hàm ẩn danh làm đối số cho một hàm khác.

package main
import "fmt"

// Chuyển hàm ẩn danh làm đối số
func GFG(i func(p, q string) string) {
    fmt.Println(i("Geeks", "for"))
}
func main() {
    value := func(p, q string) string {
        return p + q + "Geeks"
    }
    GFG(value)
}

Kết quả:

GeeksforGeeks

Trả về hàm ẩn danh

Bạn có thể trả về hàm ẩn danh từ một hàm khác.

package main
import "fmt"

// Trả về hàm ẩn danh
func GFG() func(i, j string) string {
    myf := func(i, j string) string {
        return i + j + "GeeksforGeeks"
    }
    return myf
}

func main() {
    value := GFG()
    fmt.Println(value("Welcome ", "to "))
}

Kết quả:

Welcome to GeeksforGeeks

Kết luận

Các hàm ẩn danh trong Golang rất linh hoạt và mạnh mẽ. Chúng có thể được sử dụng để tạo các hàm nội tuyến, closure và thậm chí để truyền và trả về các hàm. Hiểu cách sử dụng chúng hiệu quả có thể cải thiện đáng kể khả năng lập trình của bạn trong Go.

Thứ Sáu, 21/03/2025 09:25
51 👨 80
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