forked from RedHatOfficial/GoCourse
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgo_primer_ru.slide
More file actions
117 lines (91 loc) · 4.18 KB
/
go_primer_ru.slide
File metadata and controls
117 lines (91 loc) · 4.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
Введение в язык Go
Pavel Tišnovský <golang@centrum.cz>
12 Jun 2024
Tags: golang, go
Red Hat, Inc.
* Sources
- [[https://github.com/RedHatOfficial/GoCourse]]
.image ./common/qr_address.png
* Gophers
#The Go gopher was designed by Renee French. (http://reneefrench.blogspot.com/)
#Source https://golang.org/doc/gopher/fiveyears.jpg
#The design and this image is licensed under the Creative Commons 3.0 Attributions license.
.image ./common/fiveyears.jpg _ 900
* Gopher
.image ./common/gopher.jpg _ 600
* Ключевые слова Go
break case chan const continue
default defer else fallthrough for
func go goto if import
interface map package range return
select struct switch type var
* Пакеты и импорты
- Строительные блоки программы ("библиотеки")
- Импортируются другими программами
- Имя пакета - последний элемент пути импорта
- Стандартные пакеты: [[https://golang.org/pkg/]]
.code lesson1/packages.go
* Hello world в Go
.play lesson1/hello3.go
.play lesson1/hello.go
.play lesson1/hello2.go
* Синтаксис
- Эволюционировал от C
- Объявления в постфиксе
- Экспортируемые символы начинаются с заглавной буквы
- [[https://blog.golang.org/gos-declaration-syntax]]
.code lesson1/syntax_c.go
.code lesson1/syntax_go.go
* Функции
.play lesson1/functions.go
* Множественные возвращаемые значения
.play lesson1/functions2.go
* Именованные возвращаемые значения
.play lesson1/functions3.go
* Переменные
.play lesson1/vars.go
* Типы
- Похожи на C
- Нет автоматических приведений
- Вывод типов && типы по умолчанию
- Каждый тип имеет четкое нулевое значение (0, false, "")
.code lesson1/types.go
* Преобразования типов
- Нет автоматических приведений
.play lesson1/casts.go
* Константы
.play lesson1/const.go
* Условия
- Как и для цикла for, позволяет инициализирующее выражение
- Переменные, объявленные там, не существуют вне блока if
- Нет скобок вокруг условного выражения
- Блоки обязательны! (вспомните Apple Goto fail)
.play lesson1/if.go
* Выражение else
- Переменные, объявленные в инициализирующем выражении, существуют в блоке else
- Else на той же строке, что и закрывающая скобка
.play lesson1/if2.go
* Выражение switch
- Снова позволяет инициализирующее выражение
- Как набор выражений if-else
- Оценивается сверху вниз, выполняется первый успешный case
- Поэтому нет выражения break
.play lesson1/switch.go
* Выражение switch 2
- Позволяет неконстантные и нецелочисленные значения
.play lesson1/switch2.go
* Выражение switch без выражения
- Эквивалентно switch true
- Чистый способ написать длинные цепочки if-then-else
.play lesson1/switch3.go
* Циклы
- Единственная конструкция цикла в Go
- Семантика тройного цикла C for
- Инициализация, условие, пост-выражение все опциональны
.play lesson1/for.go
#last slide
* Больше Gophers
#The Go gopher was designed by Renee French. (http://reneefrench.blogspot.com/)
#Source https://golang.org/doc/gopher/bumper.png
#The design and this image is licensed under the Creative Commons 3.0 Attributions license.
.image ./common/bumper.png _ 900