Main and init functions in Golang

Go language has reserved two special purpose functions and those functions are main() and init() . Here are the things to know about using main() and init() functions in Golang .

Main and init functions in Golang

main() function

In Go, the main package is a special package used with executable programs and this package contains the main() function . The main() function is a special type of function and is the entry point for executable programs. It does not take any arguments and does not return anything. Go automatically calls the main() function, so there is no need to call the main() function directly and every executable program must contain a main package and a unique main() function.

For example:

// 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())

}

Result:

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

init() function

The init() function is just like the main function, it does not take any arguments and does not return anything. It is present in every package and is called when the package is initialized. It is implicitly declared, so you cannot reference it from anywhere and you are allowed to create multiple init() functions in the same program and they are executed in the order they are created. You are allowed to create init() functions anywhere in the program and they are called in the order of the dictionary file name (Alphabetical order). You are allowed to put statements if there is an init() function, but always remember that the init() function is executed before the main() function call, so it is independent of the main() function. The main purpose of the init() function is to initialize global variables that cannot be initialized in the global context.

For example:

// 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")
}

Result:

Welcome to init() function
Hello! init() function
Welcome to main() function
Sign up and earn $1000 a day ⋙

Leave a Comment

Keywords in Go

Keywords in Go

Keyword - Keywords are words in a language that are used for some internal processes or represent some predefined actions. Here is what you need to know about keywords in Golang.

Data types in Golang

Data types in Golang

Data types specify what type of data a valid Go variable can hold. In the Go language, types are divided into four categories as follows:

Function arguments in Golang

Function arguments in Golang

Go supports two main ways to pass arguments: Pass by Value and Pass by Reference. Go uses pass by value by default.

Function returning multiple values ​​in Golang

Function returning multiple values ​​in Golang

In Go language, you are allowed to return multiple values ​​from a function, using the return statement. In other words, in a function, a return statement can return multiple values.

Switch Statement in Go

Switch Statement in Go

Golang like most other programming languages ​​has switch statement. Here is how to use switch statement in Golang.

Cases to know when using selection statements in Golang

Cases to know when using selection statements in Golang

In this article, we will learn how to use default case to avoid deadlock. But first, we will learn what is deadlock case when using select command in Golang?

Anonymous structures and fields in Golang

Anonymous structures and fields in Golang

Anonymous structs in Golang are temporary structures with no names used for one-time purposes, while anonymous fields allow embedding of unnamed fields.

How to use Rune in Golang

How to use Rune in Golang

What is Rune in Golang? How to use Rune in Golang? This article will give you the answer.

How to use operators in Golang

How to use operators in Golang

Operators allow us to perform different types of operations on operands. In Go language, operators can be classified based on their different functions.

Void identifier in Golang

Void identifier in Golang

_(underscore) in Golang is called Blank Identifier. Identifier is a user-defined name of program elements used for identification purposes.

How to create basic program in Golang

How to create basic program in Golang

Hello, World! is the first basic program in any programming language. You can write this first program in Golang by following the steps below.

How to Install Go on Windows

How to Install Go on Windows

Golang can be easily installed on Windows. Here is a step-by-step guide to install Golang on Windows.

Methods with the same name in Golang

Methods with the same name in Golang

Golang allows creating two or more methods with the same name in the same package, but the receivers of these methods must be of different types.

Functions in Go

Functions in Go

In Go, functions are blocks of code that perform specific tasks, which can be reused throughout the program to save memory, improve readability, and save time.

Variable Scope in Go

Variable Scope in Go

The scope of a variable in Golang determines which part of the program the variable is accessible to. In Go, all identifiers have a lexical scope that is determined at compile time.

ChatGPT May Be Running Silently on Your Phone and How to Fix It

ChatGPT May Be Running Silently on Your Phone and How to Fix It

Background Conversations keep a user's conversation with ChatGPT going while using other apps or when the screen is off. This means ChatGPT can listen or monitor a user's phone usage behavior 24/7.

Googles Gemini Responds With Weird, Repeated Nonsense Words to Some Users

Googles Gemini Responds With Weird, Repeated Nonsense Words to Some Users

Recently, some users noticed that Google Gemini has been giving repetitive text, weird characters, and complete nonsense in some responses.

Full code of Luc Tung Tam Quoc latest and instructions to redeem code

Full code of Luc Tung Tam Quoc latest and instructions to redeem code

Code Luc Tung Tam Quoc gives new players everything they need to start their journey.

Code Giang Ho Ngu Tuyet and how to enter code

Code Giang Ho Ngu Tuyet and how to enter code

Giang Ho Ngu Tuyet is an MMORPG game based on the five elements of mutual generation and mutual inhibition. With 5 sects: Shaolin, Minh Giao, Vo Dang, Duong Gia, Thien Nhan based on the five elements of Metal, Wood, Water, Fire, Earth.

MIUI 13 Wallpaper, MIUI 13 Wallpaper

MIUI 13 Wallpaper, MIUI 13 Wallpaper

MIUI 13 wallpapers with many different wallpaper themes from abstract to landscape, combined with vivid and attractive colors for users to choose from.

How to fix Your virus & threat protection is managed by your organization error

How to fix Your virus & threat protection is managed by your organization error

What do you need to do to resolve the error Your virus & threat protection is managed by your organization?

How to fix Chromebook not turning on

How to fix Chromebook not turning on

If your Chromebook won't turn on, you're probably feeling frustrated and hopeless. Luckily, many of the reasons why a Chromebook won't turn on are easy to fix.

Why should you always check app permissions before pressing install?

Why should you always check app permissions before pressing install?

Taking a moment to review your app permissions can save you a lot of privacy and security problems later on!

How to play Rengar DTCL season 14, standard items, lineup...

How to play Rengar DTCL season 14, standard items, lineup...

Rengar DTCL season 14 will play the main assassin role, with the ability to jump to the enemy with the lowest health and deal strong physical damage.

Can autism be detected based on facial features?

Can autism be detected based on facial features?

Using facial features to detect autism is a growing area of ​​research. While it can aid in diagnosis, much of the research remains unreliable.

10 types of diseases caused by technology, only appear in modern people

10 types of diseases caused by technology, only appear in modern people

Technology brings convenience and unlimited connectivity, changing everyone's lives but also bringing diseases that were never seen before.

How to move purchases between 2 Apple accounts

How to move purchases between 2 Apple accounts

If you've purchased apps, subscriptions, music, videos, or other content from one Apple account, you can now transfer purchases to another Apple account when needed.

How to hide personal information of photos on phone

How to hide personal information of photos on phone

Skitch application on Android, iOS will edit images including the feature of blurring out personal and confidential information in the image.

5 Best Productivity Plugins for Tmux

5 Best Productivity Plugins for Tmux

This article will introduce some of the best plugins for Tmux that can help optimize your Terminal workflow.

Find Samsung phone, how to locate Samsung when lost

Find Samsung phone, how to locate Samsung when lost

Finding a Samsung phone, locating a lost device is easy if you know how. Quantrimang.com has instructed you how to find a lost iPhone, similar to Samsung phones, you do not need to download any third-party applications, to locate the phone with the method below.