02.4
@@ -6,4 +6,4 @@
|
||||
|
||||
- [Содержание](preface.md)
|
||||
- Предыдущий раздел: [Инструменты разработки для Go](01.4.md)
|
||||
- Следующий раздел: [Основы Go](02.0.md)
|
||||
- Следующий раздел: [Введение в Go](02.0.md)
|
||||
|
||||
12
ru/02.0.md
@@ -1,17 +1,17 @@
|
||||
# 2. Основы Go
|
||||
# 2 Введение в Go
|
||||
|
||||
Go - компилируемый язык, созданный для системного программирования, он относится к семейству языков C. Однако, компиляция программ на Go происходит значительно быстрее, чем в других языках этого семейства. В Go существует лишь 25 ключевых слов - меньше, чем 26 букв в английском алфавите! Прежде, чем начать, давайте посмотрим на эти ключевые слова:
|
||||
Go - компилируемый системный язык программирования, и он относится к С-подобным языкам. Однако, скорость его компиляции намного выше. Он имеет всего 25 ключевых слов... даже меньше чем букв в английском алфавите! Давайте взглянем на эти ключевые слова прежде чем мы начнем.
|
||||
|
||||
break default func interface select
|
||||
case defer go map struct
|
||||
chan else goto package switch
|
||||
const fallthrough if range type
|
||||
continue for import return var
|
||||
|
||||
В этом разделе я собираюсь преподать Вам некоторые основы Go. Вы сможете оценить выразительность этого языка и то, красиво он спроектирован. Программировать на Go может быть очень занимательно! По завершении этой главы Вы ознакомитесь с указанными выше ключевыми словами.
|
||||
|
||||
В этой главе, я собираюсь научить вас основам Go. Вы обнаружите, насколько лаконичен язык Go, и как превосходна его архитектура. Программирование на Go может быть по-настоящему веселым. После того, как вы закончите эту главу, вы будете знакомы с упомянутыми ключевыми словами.
|
||||
|
||||
## Ссылки
|
||||
|
||||
- [Содержание](preface.md)
|
||||
- Предыдущий раздел: [Итоги Раздела 1](01.5.md)
|
||||
- Следующий раздел: ["Hello, Go"](02.1.md)
|
||||
- Предыдущий раздел: [Глава 1 Итоги раздела](01.4.md)
|
||||
- Следующий раздел: ["Привет, Go"](02.1.md)
|
||||
|
||||
47
ru/02.1.md
@@ -1,53 +1,54 @@
|
||||
# 2.1 Hello, Go
|
||||
# 2.1 Привет, Go
|
||||
|
||||
Перед тем, как разрабатывать приложения на Go, мы должны научиться писать простые программы. Мы не можем узнать, как построить дом без знания от том, как построить фундамент. Поэтому в этом разделе мы изучим основы синтаксиса для того, чтобы писать простые программы.
|
||||
Прежде чем мы начнем конструировать приложение на Go, нам необходимо научиться писать простые программы. Вы не сможете построить здание, не узнав, сперва, как проложить фундамент. Вследствие чего, в этом разделе мы изучим базовый синтакс для запуска простой программы.
|
||||
|
||||
## Программа
|
||||
|
||||
Согласно международной практике перед тем, как начать обучение программированию на каком-либо языке, стоит узнать, как написать программу, которая выводит на экран фразу "Hello world".
|
||||
Согласно международной практике, изучение языков программирования принято начинать с написания программы, которая выводит текст "Hello, World".
|
||||
|
||||
Вы готовы? Поехали!
|
||||
Вы готовы? Let's Go!
|
||||
|
||||
package main
|
||||
|
||||
|
||||
import "fmt"
|
||||
|
||||
|
||||
func main() {
|
||||
fmt.Printf("Hello, world или 你好,世界 или καλημ ́ρα κóσμ или こんにちは世界\n")
|
||||
fmt.Printf("Hello, world or 你好,世界 or καλημ ́ρα κóσμ or こんにちは世界 or Привет, мир\n")
|
||||
}
|
||||
|
||||
Эта программа печатает следующую информацию:
|
||||
|
||||
Hello, world или 你好,世界 или καλημ ́ρα κóσμ или こんにちは世界
|
||||
Это выводит следующую информацию.
|
||||
|
||||
Hello, world or 你好,世界 or καλημ ́ρα κóσμ or こんにちは世界 or Привет, мир
|
||||
|
||||
## Объяснение
|
||||
|
||||
Первое, что Вы должны запомнить - это то, что программы на Go состоят из пакетов (`package`).
|
||||
Во-первых программы в Go состоят из `package` (пакетов).
|
||||
|
||||
`package <имяПакета>` (В данном случае это `package main`) говорит нам о том, что данный файл исходных кодов относится к пакету `main`, а ключевое слово `main` говорит о том, что этот пакет будет скомпилирован в программу, а не в файлы пакета с расширением `.a`.
|
||||
`package <pkgName>` (В данном случае `package main`) говорит нам о том, что этот исходный файл принадлежит к `main` пакету. А ключевое слово `main`, что данный пакет должен компилироваться в программу, а не в пакет файлов с расширением `.a`.
|
||||
|
||||
Каждая программа должна содержать один и только один пакет `main`. Также в этом пакете должна быть входная функция с именем `main`, которая не принимает никаких аргументов и ничего не возвращает.
|
||||
Каждая исполняемая программа имеет один и только один `main` пакет, а также вам необходимо реализовать функцию `main` без аргументов и возвращаемых значений.
|
||||
|
||||
Для того, чтобы напечатать `Hello, world…` мы вызываем функцию `Printf`. Эта функция находится в пакете `fmt`, поэтому мы импортируем этот пакет в третьей строке нашего кода (`import "fmt"`).
|
||||
Чтобы вывести `Hello, world…`, мы вызвали функцию `Printf`. Эта функция находится в пакете `fmt`, поэтому нам надо импортировать этот пакет, что мы и делаем в третьей строчке кода - `import "fmt"`.
|
||||
|
||||
Пакеты в Go устроены так же, как в Python, и это дает следующие преимущества: модульность (можно разбить программу на несколько модулей) и возможность повторного использования (каждый модуль может быть повторно использован в нескольких программах). Сейчас мы просто поговорили об основных понятиях, относящихся к пакетам, а позже будем создавать наши собственные пакеты.
|
||||
Пакеты в Go похожи на аналогичные в Python, вот несколько преимуществ пакетов:
|
||||
Модульность (разбить программу на несколько модулей) и повторное использование (каждый модуль может быть использован во множестве программ). Сейчас мы просто рассмотрели общее представление пакетов, и чуть позже напишем свой собственный пакет.
|
||||
|
||||
В пятой строке мы используем ключевое слово `func`, чтобы задать функцию `main`. Тело функции находится внутри фигурных скобок `{}`, как и в C, C++ и Java.
|
||||
В пятой строке мы использовали ключевое слово `func` для определения функции `main`. Тело функции находится внутри `{}`, прямо как в C, C++ и Java.
|
||||
|
||||
Как можно видеть, у этой функции нет аргументов. Вскоре Вы узнаете, как создавать функции с аргументами. Также функции могут возвращать значения либо не возвращать их.
|
||||
Как вы видите она не принимает ни один аргумент. Мы научимся писать функции, принимающие аргументы всего через минуту, а также функции которые не возвращают значение или возращают несколько.
|
||||
|
||||
В шестой строке мы вызываем функцию `Printf` из пакета `fmt`. Функция вызывается в форме `<имяПакета>.<имяФункции>`, что очень похоже на стиль Python.
|
||||
В шестой строке мы вызываем функцию `Printf`, которая находится в пакете `fmt`. Она была вызвана, используя синтаксис `<pkgName>.<funcName>` (`<имя пакета>.<имя функции>`), в Python-стиле.
|
||||
|
||||
Как отмечалось в главе 1, имя пакета и каталога, в котором находится пакет, могут различаться. В приведенном примере `<имяПакета>` задается командой `package <имяПакета>` и не зависит от имени каталога, в котором пакет находится.
|
||||
Как мы упоминали в 1 главе, имя пакета и имя папки (которая содержит этот пакет) могут быть различными. Здесь `<pkgName>` (`<имя пакета>`) исходит из пакета, а не из имени папки.
|
||||
|
||||
Вы можете заметить, что вышеприведенный пример содержит множество символов, не относящихся к ASCII. Мы сделали это для того, чтобы показать, что Go по умолчанию поддерживает UTF-8. В программах можно использовать любой символ UTF-8.
|
||||
Как вы могли заметить, пример выше содержит множество символов, которых нет в таблице ASCII. Это было нужно для того, чтобы продемонстрировать, что Go поддерживает UTF-8 по-умолчанию. Вы можете использовать в ваших программах любой символ из UTF-8.
|
||||
|
||||
## Заключение
|
||||
|
||||
Go использует пакеты - `package` (как модули в Python) для организации программ. Функция `main.main()` (она должна находиться в пакете `main`) является входной точкой любой программы. Go поддерживает символы UTF-8, так как один из создателей Go - создатель UTF-8, поэтому Go поддерживает множество языков с момента своего создания.
|
||||
Go использует `package` (пакет) для структурирования программ. Функция `main.main()` (эта функция находится в пакете `main`) входной пункт каждой программы. Go поддерживает стандарт UTF-8, так как один из создателей Go является также одним из создателей UTF-8, так что Go поддерживает множество языков с самого рождения.
|
||||
|
||||
## Ссылки
|
||||
|
||||
- [Содержание](preface.md)
|
||||
- Предыдущий раздел: [Основы Go](02.0.md)
|
||||
- Следующий раздел: [Фундамент Go](02.2.md)
|
||||
- Предыдущий раздел: [Введение в Go](02.0.md)
|
||||
- Следующий раздел: [Основы Go](02.2.md)
|
||||
|
||||
|
Before Width: | Height: | Size: 190 KiB After Width: | Height: | Size: 152 KiB |
BIN
ru/images/3.1.dns2_Ru.png
Normal file
|
After Width: | Height: | Size: 177 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 51 KiB |
BIN
ru/images/3.1.web2_Ru.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
ru/images/3.3.illustrator_Ru.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 51 KiB |
BIN
ru/images/8.4.rpc_Ru.png
Normal file
|
After Width: | Height: | Size: 78 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 30 KiB |
BIN
ru/images/navi10_Ru.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 32 KiB |
BIN
ru/images/navi11_Ru.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 30 KiB |
BIN
ru/images/navi12_Ru.png
Normal file
|
After Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 36 KiB |
BIN
ru/images/navi13_Ru.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 37 KiB |
BIN
ru/images/navi14_Ru.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
ru/images/navi1_Ru.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 40 KiB |
BIN
ru/images/navi2_Ru.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 34 KiB |
BIN
ru/images/navi3_Ru.png
Normal file
|
After Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 32 KiB |
BIN
ru/images/navi4_Ru.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 42 KiB |
BIN
ru/images/navi5_Ru.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 38 KiB |
BIN
ru/images/navi6_Ru.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 37 KiB |
BIN
ru/images/navi7_Ru.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 35 KiB |
BIN
ru/images/navi8_Ru.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 37 KiB |
BIN
ru/images/navi9_Ru.png
Normal file
|
After Width: | Height: | Size: 56 KiB |