
Link to Part 1: https://himashikarunathilake.medium.com/go-1-74940ce2556d Link to Part 2: https://himashikarunathilake.medium.com/go-2-79dc2c04db26 Link to Part 3: https://himashikarunathilake.medium.com/go-3-acbfda8360ed Link to Part 4: https://himashikarunathilake.medium.com/go-4-7b1ead499bb9
Ниже приведен файл main.go, который будет использоваться для запуска всех подфайлов в этом разделе:
// The fifth program in Go.
package main
import (
"fmt"
"packs"
)
func main() {
fmt.Println()
fmt.Println("*************** RUNNING THE GREETINGS.GO FILE ***************")
packs.SayHello()
fmt.Println("__________________________________________________________________________________________")
fmt.Println()
fmt.Println("*************** RUNNING THE ANONYMOUS_FUNCTIONS.GO FILE ***************")
AnonymousFunctions()
fmt.Println("__________________________________________________________________________________________")
fmt.Println()
}
Модули
Модули в Go предоставляют способ управления зависимостями и версиями в ваших проектах, а также позволяют определять и поддерживать определенный набор пакетов и их версий, от которых зависит ваш проект.
Инициализация модуля
Чтобы инициализировать модуль, выполните следующую команду в командной строке.
go mod init github.com/your_username/you_file_name

Добавление зависимостей
Чтобы добавить зависимость в проект, необходимо импортировать необходимые пакеты. Например, предположим, что вам нужно включить драйвер MySQL для вашего проекта Go, тогда вы можете импортировать в свой проект следующий пакет:
import "github.com/go-sql-driver/mysql"
Управление зависимостями
Зависимостями и их версиями можно управлять через созданный файл go.mod.
Обновление зависимостей
Чтобы обновить все зависимости в вашем проекте, выполните в терминале следующую команду:
go get -u
Пакеты
Пакеты Go можно использовать для группировки связанных функций, типов и переменных.
Декларация пакета
Каждый исходный файл Go начинается с объявления пакета, в котором указывается пакет, которому принадлежит файл.
Имя пакета должно быть в нижнем регистре.
package package_name
Экспортированные и неэкспортированные имена
Name starts with a:
Uppercase Letter Exported Accessible from other packages
Lowercase Letter Un-exported Can only be accessed within the same
package
package packs
import "fmt"
// Exported function
func SayHello() {
fmt.Println("Hello!")
}
// Un-exported function
func sayGoodbye() {
fmt.Println("Goodbye!")
}
Импорт пакетов
Чтобы использовать функции, типы или переменные из другого пакета, их необходимо импортировать.
// The fifth program in Go.
package main
import (
"fmt"
"packs"
)
func main() {
fmt.Println()
fmt.Println("*************** RUNNING THE GREETINGS.GO FILE ***************")
packs.SayHello()
fmt.Println("__________________________________________________________________________________________")
fmt.Println()
}

Анонимные функции
Анонимные функции определяются в строке и не имеют имени. Они часто используются в качестве обратных вызовов или в качестве тела цикла for.
Назначение анонимной функции переменной
package main
import "fmt"
func AnonymousFunctions() {
// Assign an anonymous function to a variable
sum := func(num1, num2 int) int {
return num1 + num2
}
}
Вызов анонимной функции
package main
import "fmt"
func AnonymousFunctions() {
// Assign an anonymous function to a variable
sum := func(num1, num2 int) int {
return num1 + num2
}
// Call the anonymous function
var num1, num2 int
fmt.Print("Please provide the first number: ")
fmt.Scan(&num1)
fmt.Print("Please provide the second number: ")
fmt.Scan(&num2)
fmt.Println()
fmt.Printf("The addition of the two numbers are: %d\n", sum(num1, num2))
}

Вы можете получить доступ к исходному коду по адресу: Go/Part-5 at master · Himashi-Karunathilake/Go (github.com)