Skip to content

Latest commit

 

History

History
54 lines (30 loc) · 5.17 KB

File metadata and controls

54 lines (30 loc) · 5.17 KB

2.1 Привет, Go

Прежде, чем мы начнем конструировать приложение на Go, нам необходимо научиться писать простые программы. Вы не сможете построить здание, не узнав, сперва, как проложить фундамент. Вследствие чего, в этом разделе мы изучим базовый синтакс для запуска простой программы.

Программа

Согласно международной практике, изучение языков программирования принято начинать с написания программы, которая выводит текст "Hello, World".

Вы готовы? Let's Go!

package main

import "fmt"

func main() {
	fmt.Printf("Hello, world or 你好,世界 or καλημ ́ρα κóσμ or こんにちは世界 or Привет, мир\n")
}

Это выводит следующую информацию.

Hello, world or 你好,世界 or καλημ ́ρα κóσμ or こんにちは世界 or Привет, мир

Объяснение

Во-первых, программы в Go состоят из package (пакетов).

package <pkgName> (В данном случае package main) говорит нам о том, что этот исходный файл принадлежит к main пакету. А ключевое слово main, что данный пакет должен компилироваться в программу, а не в пакет файлов с расширением .a.

Каждая исполняемая программа имеет один и только один main пакет, а также вам необходимо реализовать функцию main без аргументов и возвращаемых значений.

Чтобы вывести Hello, world…, мы вызвали функцию Printf. Эта функция находится в пакете fmt, поэтому нам надо импортировать этот пакет, что мы и делаем в третьей строчке кода - import "fmt".

Пакеты в Go похожи на аналогичные в Python, вот несколько преимуществ пакетов: Модульность (разбиение программы на несколько модулей) и повторное использование (каждый модуль может быть использован во множестве программ). Сейчас мы просто рассмотрели общее представление пакетов, и чуть позже напишем свой собственный пакет.

В пятой строке мы использовали ключевое слово func для определения функции main. Тело функции находится внутри {}, прямо как в C, C++ и Java.

Как вы видите, она не принимает ни один аргумент. Мы научимся писать функции, принимающие аргументы всего через минуту, а также функции которые не возвращают значение или возращают несколько.

В шестой строке мы вызываем функцию Printf, которая находится в пакете fmt. Она была вызвана, используя синтаксис <pkgName>.<funcName> (<имя пакета>.<имя функции>), в Python-стиле.

Как мы упоминали в 1 главе, имя пакета и имя папки (которая содержит этот пакет) могут быть различными. Здесь <pkgName> (<имя пакета>) исходит из пакета, а не из имени папки.

Как вы могли заметить, пример выше содержит множество символов, которых нет в таблице ASCII. Это было нужно для того, чтобы продемонстрировать, что Go поддерживает UTF-8 по-умолчанию. Вы можете использовать в ваших программах любой символ из UTF-8.

Заключение

Go использует package (пакет) для структурирования программ. Функция main.main() (эта функция находится в пакете main) - входной пункт каждой программы. Go поддерживает стандарт UTF-8, так как один из создателей Go является также одним из создателей UTF-8, так что Go поддерживает множество языков с самого рождения.

Ссылки