Hàm main và init trong Golang

Chủ nhật - 23/03/2025 23:46

Ngôn ngữ Go dành riêng hai hàm cho mục đích đặc biệt và các hàm đó là hàm main() và init(). Dưới đây là những điều cần biết về cách dùng hàm main() và init() trong Golang.

 


Hàm main và init trong Golang
    

Hàm main()

Trong ngôn ngữ Go, gói main là một gói đặc biệt được sử dụng với các chương trình có thể thực thi và gói này chứa hàm main(). Hàm main() là một loại hàm đặc biệt và là điểm vào của các chương trình có thể thực thi. Nó không lấy bất kỳ đối số nào cũng như không trả về bất kỳ thứ gì. Go tự động gọi hàm main(), do đó không cần phải trực tiếp gọi hàm main() và mọi chương trình có thể thực thi phải chứa một gói main và hàm main() duy nhất.

Ví dụ:

// Chương trình Go minh họa
// khái niệm của hàm main() 

// Khai báo gói chính
package main

// Nhập các gói
import (
    "fmt"
    "sort"
    "strings"
    "time"
)

// Hàm chính
func main() {

    // Sắp xếp slice đưa ra
    s := []int{345, 78, 123, 10, 76, 2, 567, 5}
    sort.Ints(s)
    fmt.Println("Sorted slice: ", s)

    // Tìm chỉ mục
    fmt.Println("Index value: ", strings.Index("Quantrimang", "ks"))

    // Tìm thời gian
    fmt.Println("Time: ", time.Now().Unix())

}

Kết quả:

Sorted slice:  [2 5 10 76 78 123 345 567]
Index value:  3
Time:  1257894000

Hàm init()

Hàm init() cũng giống như hàm main, không lấy bất kỳ đối số nào cũng như không trả về bất kỳ thứ gì. Hàm này có trong mọi gói và được gọi khi gói được khởi tạo. Hàm này được khai báo ngầm định, do đó bạn không thể tham chiếu nó từ bất kỳ đâu và được phép tạo nhiều hàm init() trong cùng một chương trình và chúng được thực thi theo thứ tự được tạo ra. Bạn được phép tạo hàm init() ở bất kỳ đâu trong chương trình và chúng được gọi theo thứ tự tên tệp từ điển (Thứ tự chữ cái). Bạn được phép đặt các câu lệnh nếu có hàm init(), nhưng luôn nhớ rằng hàm init() được thực thi trước lệnh gọi hàm main(), do đó nó không phụ thuộc vào hàm main(). Mục đích chính của hàm init() là khởi tạo các biến toàn cục không thể được khởi tạo trong ngữ cảnh toàn cục.

Ví dụ:

// Chương trình Go minh họa
// khái niệm của hàm init() 

// Khai báo gói chính
package main

// Nhập gói
import "fmt"

// Hàm init() có nhiều nhánh
func init() {
    fmt.Println("Welcome to init() function")
}

func init() {
    fmt.Println("Hello! init() function")
}

// Hàm chính
func main() {
    fmt.Println("Welcome to main() function")
}

Kết quả:

Welcome to init() function
Hello! init() function
Welcome to main() function
 

Nguồn tin: Quantrimang.com:

Tổng số điểm của bài viết là: 0 trong 0 đánh giá

  Ý kiến bạn đọc

THỐNG KÊ TRUY CẬP
  • Đang truy cập29
  • Hôm nay9,503
  • Tháng hiện tại32,448
  • Tổng lượt truy cập11,818,835
QUẢNG CÁO
Phan Thanh Phú
Quảng cáo 2
Liên kết site
Đăng nhập Thành viên
Hãy đăng nhập thành viên để trải nghiệm đầy đủ các tiện ích trên site
Thăm dò ý kiến

Bạn thấy Website cần cải tiến những gì?

Lịch Âm dương
Máy tính
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây