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)