Введение
В этом практическом занятии (лабораторной работе) мы официально начнем изучать программирование на языке Go. Мы рассмотрим основные концепции и самостоятельно напишем простую программу на Go.
Точки знания:
- Стандартный оператор вывода
- Структура кода
- Запуск программы
- Общие функции в пакете
fmt
💡 Первая программа на Go
Начнем с создания нашей первой программы на Go. Щелкните правой кнопкой мыши по боковой панели и создайте новый файл с именем helloWorld.go в папке проекта.

Примечание: Мы рекомендуем использовать WebIDE (похожий на VS Code) для лучшего опыта. Узнайте больше о руководстве по использованию WebIDE здесь.
Вы также можете создать новый файл с помощью команды touch:
touch helloWorld.go
Теперь откройте файл и напишите следующий код:
package main
import "fmt"
func main() {
fmt.Println("hello, world")
}
Первая строка, package main, указывает, что эта программа принадлежит пакету main. Вторая строка, import "fmt", импортирует пакет fmt языка Go, который позволяет нам форматировать ввод и вывод текста. Функция main является точкой входа в программу, и внутри нее fmt.Println("hello, world") выведет hello, world в терминал.
Чтобы запустить программу, откройте терминал и введите следующую команду:
go run helloWorld.go
Если все настроено правильно, вы должны увидеть следующий вывод:
hello, world
Это простая программа "Hello World". Теперь давайте разберем код и операции построчно.
Структура программы и синтаксис
В языке Go пакет является базовой единицей управления кодом. Каждая программа на Go начинается с объявления package. В данном случае, package main сообщает Go, что этот код является частью основной программы, которая будет выполнена.
Инструкция import "fmt" импортирует пакет fmt языка Go, который используется для ввода и вывода. Go имеет обширную стандартную библиотеку, которая позволяет нам легко выполнять многие задачи. Пакет fmt используется для форматирования текстового вывода, как мы видели на предыдущем шаге.
Далее мы определяем функцию main:
func main() {
}
В Go все функции должны начинаться с func. Обратите внимание, что открывающая фигурная скобка { размещается в конце строки. Это соглашение в Go, и оно отличается от других языков программирования, где открывающая скобка может быть размещена на новой строке.
Если вы ошибочно поместите открывающую скобку на новую строку, как показано ниже:
func main()
{
}
Вы получите ошибку компиляции:
$ go run helloWorld.go
### command-line-arguments
./helloWorld.go:7:1: syntax error: unexpected semicolon or newline before {
Это происходит потому, что Go ожидает, что открывающая скобка будет непосредственно на той же строке.
Ключевой инструкцией в программе является fmt.Println("hello, world"), которая вызывает функцию Println пакета fmt для вывода строки "hello, world" в консоль. Эта функция автоматически добавляет символ новой строки в конце строки.
Запуск программы
Go - это компилируемый язык, но когда мы используем команду go run, Go сначала компилирует исходный код, а затем запускает полученный исполняемый файл. Таким образом, команда:
go run helloWorld.go
эквивалентна выполнению этих двух команд:
## Компилируем программу
go build helloWorld.go
## Запускаем скомпилированную программу
./helloWorld
Чтобы попробовать новый пример, изменим программу так, чтобы она приветствовала других поклонников Go (Gophers). Создайте новый файл с именем helloGopher.go и замените код на следующий:
Вы можете создать новый файл с помощью команды touch:
touch helloGopher.go
package main
import "fmt"
func main() {
fmt.Println("hello Gopher.")
fmt.Println("hello Gopher.")
fmt.Println("hello Gopher.")
}
Теперь, вместо использования go run, мы будем использовать go build для компиляции программы, а затем запустим сгенерированный исполняемый файл:
## Компилируем программу
go build helloGopher.go
## Запускаем скомпилированный исполняемый файл
./helloGopher
В результате будет выведено:
hello Gopher.
hello Gopher.
hello Gopher.
Общие функции в пакете fmt
В Шаге 1 мы использовали функцию Println() из пакета fmt для вывода данных. Пакет fmt является одним из наиболее часто используемых пакетов в Go и предоставляет несколько функций для форматирования вывода.
Вот три общие функции вывода:
fmt.Print()– Выводит текст без перевода строки.fmt.Println()– Выводит текст с переводом строки.fmt.Printf()– Выводит отформатированный текст.
Давайте рассмотрим эти функции более подробно. Создайте новый файл с именем fmt.go и введите следующий код:
package main
import "fmt"
func main() {
// Стандартный вывод
fmt.Print("hello")
fmt.Print("world")
// Println добавляет символ перевода строки после стандартного вывода
fmt.Println()
fmt.Println("labex")
// Printf обеспечивает форматированный вывод
fmt.Printf("%s\n", "London")
}
Запустите программу с помощью команды go run:
go run fmt.go
Пояснения:
fmt.Print("hello")иfmt.Print("world")выводят текст на одной строке, так какPrintне добавляет перевод строки.fmt.Println()выводит перевод строки для разделения строк.fmt.Printf("%s\n", "London")форматирует вывод, используя заполнитель%sдля строки "London".
Вот быстрый сравнительный анализ функций:
| Функция | Стандартный вывод | Перевод строки | Форматированный вывод |
|---|---|---|---|
Print |
√ | × | × |
Println |
√ | √ | × |
Printf |
× | × | √ |
Пакет fmt также предоставляет другие функции для чтения ввода, обработки ошибок и многое другое, которые будут рассмотрены в последующих упражнениях.
Резюме
В этом практическом занятии мы написали нашу первую программу на Go, изучили структуру программ на Go и рассмотрели основные функции пакета fmt для вывода данных. Мы также практиковались в запуске программ на Go и узнали различия между функциями Print, Println и Printf. Теперь у вас должна быть базовая концепция синтаксиса Go и выполнения программ на этом языке.



