forked from RedHatOfficial/GoCourse
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlesson8_ru.slide
More file actions
127 lines (60 loc) · 2.65 KB
/
lesson8_ru.slide
File metadata and controls
127 lines (60 loc) · 2.65 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
118
119
120
121
122
123
124
125
126
127
Урок 8. Дженерики (обобщения) в Go
Lesson 8
27 Jul 2025
Tags: golang, go
Перевод команды GoCourse
Pavel Tišnovský
Red Hat, Inc.
https://github.com/RedHatOfficial/GoCourse
@RedHat
* Источники
- [[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
* Дженерики в Go
Дженерики (generics) позволяют писать функции и структуры, которые работают с разными типами данных. Это удобно для создания универсальных алгоритмов, например, списков, деревьев, очередей.
* Зачем дженерики?
- чтобы иметь возможность создать что-то похожее на Numpy в Go
- настоящие абстрактные типы данных
- списки
- деревья
- очереди с приоритетом
- ...
* Недженерик функции
.play lesson8/01_print.go
* Перегруженная функция в Go?
.play lesson8/02_print_overload.go
* Никаких автоматических преобразований типов
.play lesson8/03_print_no_conversion.go
* Дженерики, реализованные в runtime
.play lesson8/04_print_interface.go
* Дженерик функция
.play lesson8/05_generic_print.go
* Выбор дженерик функции
.play lesson8/06_type_parameter.go
* Проверки типов на этапе компиляции
.play lesson8/07_type_parameter_check.go
* Comparable
.play lesson8/08_comparable.go
* Comparable переменных типов
.play lesson8/09_comparable_variable_types.go
* Сравнение параметров типов
.play lesson8/10_compare_type_parameters.go
* Функция Add для integer
.play lesson8/11_add_int.go
* Функция Add с параметрами типов
.play lesson8/12_add_type_parameters.go
* Что лучше?
.play lesson8/34_whats_better.go
* Список
.play lesson8/35_list.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