WEBVTT

1
00:04:20.300 --> 00:04:24.410
Михаил Непряхин: Так всем. Привет Напишите как. Видно, Слышно

2
00:04:24.730 --> 00:04:26.450
Михаил Непряхин: плюсики Поставьте пожалуйста,

3
00:04:30.980 --> 00:04:32.140
Михаил Непряхин: Окей

4
00:04:39.460 --> 00:04:44.230
Михаил Непряхин: Так значит посмотрим посмотреть надо на физбас

5
00:04:45.060 --> 00:04:46.230
Михаил Непряхин: кто сделал

6
00:04:46.380 --> 00:04:47.550
Михаил Непряхин: вацин

7
00:04:47.780 --> 00:04:49.060
Михаил Непряхин: кто не сделал

8
00:04:49.390 --> 00:04:50.100
Михаил Непряхин: а на

9
00:04:50.370 --> 00:04:53.140
Михаил Непряхин: все равно стоит один Раз, его написать

10
00:04:53.470 --> 00:04:54.870
Михаил Непряхин: потому что

11
00:04:54.980 --> 00:05:06.970
Михаил Непряхин: иногда бывает спрашивают то есть как бы могут спросить одно время это Была самая популярная задача ночью по всем язы по любым языкам на любых языках ее спрашивали на бэкенде

12
00:05:07.550 --> 00:05:08.740
Михаил Непряхин: за рубежом

13
00:05:08.870 --> 00:05:17.110
Михаил Непряхин: вот и у нас тоже активно спрашивали можно пару лет назад Сейчас уже редко бывает Но Иногда можно встретить

14
00:05:17.300 --> 00:05:24.400
Михаил Непряхин: потому что здесь как бы и цикл эти иф и свич можно заюзать

15
00:05:24.500 --> 00:05:33.410
Михаил Непряхин: так Но вот такой вариант решения ну как рабочий ну наверное этот первомудренный По большому счету конечно надо просто с помощью цикла

16
00:05:33.530 --> 00:05:41.750
Михаил Непряхин: ну перемены. Можно Не юзать сразу подставить Сюда Так Сейчас найдем какой-нибудь вариант который я скажу Что Прям

17
00:05:41.950 --> 00:05:43.150
Михаил Непряхин: хороший

18
00:05:48.130 --> 00:05:50.490
Михаил Непряхин: я так пролистал посмотрел,

19
00:05:50.740 --> 00:05:54.630
Михаил Непряхин: ну, вот вот вот по сути эторованный вариант вот как, бы

20
00:05:54.750 --> 00:05:55.690
Михаил Непряхин: так

21
00:05:56.100 --> 00:05:58.790
Михаил Непряхин: вот так его так и можете писать

22
00:06:04.840 --> 00:06:08.050
Михаил Непряхин: ну в общем в чем смысл да нас просто цикл.

23
00:06:09.220 --> 00:06:14.160
Михаил Непряхин: Вот Мы здесь перебираем сотни числа и

24
00:06:14.790 --> 00:06:32.710
Михаил Непряхин: важно помнить что и

25
00:06:33.780 --> 00:06:39.380
Михаил Непряхин: вот ну так в жизни Ну, Максимум где использоваться Ну, либо Это когда нам, надо

26
00:06:39.860 --> 00:06:46.330
Михаил Непряхин: Какой-нибудь шар найти, типа У нас есть Количество шардов и Мы Там Берем остаток поделяя Отделения

27
00:06:46.440 --> 00:06:50.190
Михаил Непряхин: либо ну типа кошмар да Там такой же принцип

28
00:06:50.830 --> 00:06:52.020
Михаил Непряхин: и и

29
00:06:52.260 --> 00:06:58.670
Михаил Непряхин: Это использует когда Мы хотим, допустим влог вывести каждый допустим Там тысячнуютерацию цикла

30
00:06:59.600 --> 00:07:05.020
Михаил Непряхин: так Сошевляем есть Еще варианте как с оптимизацией

31
00:07:05.650 --> 00:07:07.600
Михаил Непряхин: Ты же видел. Что. Ты написал

32
00:07:08.920 --> 00:07:12.210
Михаил Непряхин: так ну вот Из перемены я бы не стал. Лизать

33
00:07:13.560 --> 00:07:24.550
Михаил Непряхин: но круто смотреть значит в Чем здесь крутизна в отдельной функции написан для того чтобы вообще было еще Усложнение на эту задачу написать тесты

34
00:07:24.930 --> 00:07:28.540
Михаил Непряхин: типа вы пишете физбас

35
00:07:28.820 --> 00:07:33.640
Михаил Непряхин: если, вы его не пишете сразу о функции. То вам придется его Еще функции. Потом вывести

36
00:07:33.870 --> 00:07:37.670
Михаил Непряхин: вот и для того чтобы написать тесты

37
00:07:38.120 --> 00:07:39.840
Михаил Непряхин: мне нужна функция Карточек

38
00:07:40.970 --> 00:07:43.640
Михаил Непряхин: ну вряд ли Сейчас прямо кто-то вам Скажет это

39
00:07:43.750 --> 00:07:47.830
Михаил Непряхин: Не писать потому. Что и Так достаточно много задач

40
00:07:48.150 --> 00:07:56.240
Михаил Непряхин: аа Просто погошки То есть Там они реально сложные и обычно все Время уходит То есть ну. Одна задача Точно плотно слайс

41
00:07:56.660 --> 00:08:01.640
Михаил Непряхин: и Одна Или Парочка задач на гурутины каналы

42
00:08:02.560 --> 00:08:07.820
Михаил Непряхин: и могут еще что-нибудь Там про интерфейс и про указателей спросить

43
00:08:08.320 --> 00:08:10.180
Михаил Непряхин: короче

44
00:08:13.660 --> 00:08:15.170
Михаил Непряхин: да наверное здесь

45
00:08:15.670 --> 00:08:18.040
Михаил Непряхин: вот короче Есть еще вариант с оптимизацией

46
00:08:18.510 --> 00:08:20.400
Михаил Непряхин: Это задача

47
00:08:20.680 --> 00:08:27.820
Михаил Непряхин: что, на самом, деле Можно Остаток Отделения от Пятнадцати взять и Это было то Же самое что

48
00:08:28.660 --> 00:08:35.020
Михаил Непряхин: нукач запись когда Мы сперва попробуем От этого взять потом сперва Тройки и тонны Пятерки

49
00:08:35.179 --> 00:08:36.940
Михаил Непряхин: А тоже Прикольная Штука

50
00:08:37.809 --> 00:08:40.760
Михаил Непряхин: Можете запомнить как Писать

51
00:08:45.670 --> 00:08:51.260
Михаил Непряхин: короче это можно с фифа можно со свечом Ну я бы со свечом писал потому что элзыв

52
00:08:51.510 --> 00:08:59.070
Михаил Непряхин: Но в Гошке почти Никогда Не используется то есть вот это вот это стопроцентно Всегда свич пишется

53
00:08:59.880 --> 00:09:00.990
Михаил Непряхин: мистер дом

54
00:09:08.290 --> 00:09:09.390
Михаил Непряхин: Боже мой

55
00:09:10.780 --> 00:09:12.680
Михаил Непряхин: ну, в общем

56
00:09:12.870 --> 00:09:14.910
Михаил Непряхин: вы поняли

57
00:09:15.750 --> 00:09:18.860
Михаил Непряхин: ну, максимально просто вот простой вариант

58
00:09:20.380 --> 00:09:21.910
Михаил Непряхин: так

59
00:09:23.700 --> 00:09:25.960
Михаил Непряхин: так ван Давайте Перейдем

60
00:09:27.120 --> 00:09:30.370
Михаил Непряхин: продолжим продолжим Разбираться в Базовых типах.

61
00:09:35.570 --> 00:09:37.710
Михаил Непряхин: Так кто угол. Торча Не пошел

62
00:09:38.020 --> 00:09:41.170
Михаил Непряхин: да проходите гултур без задача

63
00:09:41.480 --> 00:09:45.750
Михаил Непряхин: просто Базовый сент таксист и городе. На Канал Тоже, можете не смотреть

64
00:09:46.740 --> 00:09:47.910
Михаил Непряхин: так,

65
00:09:48.610 --> 00:09:51.710
Михаил Непряхин: Нам короче сегодня говорим.

66
00:09:51.960 --> 00:09:53.250
Михаил Непряхин: О чем говорим,

67
00:09:53.380 --> 00:10:01.930
Михаил Непряхин: в функциях к объектам первого Класса об анонимных функциях оказателях но я думаю все до своей сегодня не Дойдем Что есть отдельная большая тема.

68
00:10:03.300 --> 00:10:07.740
Михаил Непряхин: А значит гоу функциональный язык ну в том плане что он

69
00:10:08.250 --> 00:10:12.290
Михаил Непряхин: как бы можно писать функциональные парадигме на гол

70
00:10:13.180 --> 00:10:14.370
Михаил Непряхин: да и

71
00:10:14.720 --> 00:10:19.170
Михаил Непряхин: я даже Один знаю человека который и

72
00:10:19.390 --> 00:10:22.220
Михаил Непряхин: пишет все проекты в функциональном стиле

73
00:10:22.820 --> 00:10:24.560
Михаил Непряхин: а что такое функциональный стиль

74
00:10:24.780 --> 00:10:30.000
Михаил Непряхин: это ну как бы что минимально необходимо для того чтобы

75
00:10:30.480 --> 00:10:32.270
Михаил Непряхин: а писать в национальном стиле

76
00:10:34.010 --> 00:10:35.530
Михаил Непряхин: нужно чтобы

77
00:10:37.000 --> 00:10:38.130
Михаил Непряхин: функция

78
00:10:38.410 --> 00:10:40.390
Михаил Непряхин: во-первых принимала функцию

79
00:10:40.610 --> 00:10:42.240
Михаил Непряхин: То есть вот Эд фанк

80
00:10:42.390 --> 00:10:44.080
Михаил Непряхин: это функция

81
00:10:44.590 --> 00:10:47.880
Михаил Непряхин: вот Мы смотрите говорим. Тайп

82
00:10:49.060 --> 00:10:52.920
Михаил Непряхин: ну, как То Же самое как Мы объявляем какие-то простые типы

83
00:10:53.030 --> 00:10:59.760
Михаил Непряхин: типа Мы можем взять и сделать аа атынь Там свой и кастомный Тип

84
00:11:00.420 --> 00:11:05.460
Михаил Непряхин: А можем Вместо типа Ну обычного. Целучительного типа

85
00:11:05.580 --> 00:11:09.850
Михаил Непряхин: указать что тип это Функция

86
00:11:10.410 --> 00:11:14.230
Михаил Непряхин: то есть указываем прям сигнатуру функции

87
00:11:14.890 --> 00:11:18.230
Михаил Непряхин: и мы говорим о том что наша. Функция фу

88
00:11:18.480 --> 00:11:21.680
Михаил Непряхин: принимает на вход. В другую функцию

89
00:11:22.600 --> 00:11:23.820
Михаил Непряхин: и и

90
00:11:25.760 --> 00:11:29.030
Михаил Непряхин: так же наша Функция может вернуть

91
00:11:29.200 --> 00:11:30.220
Михаил Непряхин: функции

92
00:11:30.800 --> 00:11:49.240
Михаил Непряхин: и ну собственно все этого достаточно для того чтобы писать что угодно Использовать разные Дикие паттерны и творить максимальную Дичь ну то Есть, вот У нас инкриминимент фанк это тоже Функция но это функция вот она с такого типа то есть тип называется инкриент фанк

93
00:11:50.280 --> 00:11:51.840
Михаил Непряхин: и и

94
00:11:52.240 --> 00:11:56.550
Михаил Непряхин: а типом является Сигнатура функций то есть вот Это все это тип такой

95
00:11:58.010 --> 00:12:00.720
Михаил Непряхин: и Мы здесь возвращаем дело в Ритерн

96
00:12:00.830 --> 00:12:03.590
Михаил Непряхин: говорим. Что Мы возвращаем Функцию

97
00:12:03.880 --> 00:12:06.510
Михаил Непряхин: ну в нашем случае Она немы функционирует

98
00:12:07.320 --> 00:12:11.700
Михаил Непряхин: сигнатура, Она Должна соответствовать Этой и

99
00:12:12.400 --> 00:12:20.450
Михаил Непряхин: в теле Этой функции Мы еще вызываем вот эту Функцию которую приняли и здесь прописываем Что вот У нее Один аргумент икс а второй Один

100
00:12:21.330 --> 00:12:26.180
Михаил Непряхин: вот и значит я встречал, Проект, написанный полностью в таком, стиле

101
00:12:26.850 --> 00:12:28.260
Михаил Непряхин: жизнь полнейшая

102
00:12:28.480 --> 00:12:33.260
Михаил Непряхин: и ну. Просто как бы Теряется смысл

103
00:12:34.100 --> 00:12:39.240
Михаил Непряхин: того Что У нас Нормальный язык Со строгой эстетической типизацией

104
00:12:39.560 --> 00:12:42.290
Михаил Непряхин: и Теряется смысл того Что

105
00:12:43.320 --> 00:12:48.250
Михаил Непряхин: У нас Сигнатура, Функций как Мы в прошлый Раз, говорили несет очень много смысла

106
00:12:48.700 --> 00:12:53.110
Михаил Непряхин: если вы начинаете принимать функции. И отдавать функции.

107
00:12:53.230 --> 00:13:03.530
Михаил Непряхин: Смотря в эту синатуру у вас Нет никакой информации для того чтобы понять что здесь происходит вы должны э вот эту сигнатуру посмотреть

108
00:13:04.600 --> 00:13:17.520
Михаил Непряхин: а Проект который я Видел. Он и

109
00:13:17.520 --> 00:13:25.540
Михаил Непряхин: Но когда типа все обернуто и в итоге у нас есть один большой объект который он как бы типа собирается Из этих Объектов.

110
00:13:26.550 --> 00:13:30.400
Михаил Непряхин: Значит зачем вообще это в гошке нужно

111
00:13:31.650 --> 00:13:32.750
Михаил Непряхин: это

112
00:13:33.710 --> 00:13:35.010
Михаил Непряхин: а инструмент

113
00:13:35.130 --> 00:13:37.630
Михаил Непряхин: который редко бывает нужен

114
00:13:37.920 --> 00:13:42.220
Михаил Непряхин: Но тем не менее Иногда это нужно и это удобно

115
00:13:42.480 --> 00:13:55.710
Михаил Непряхин: и Поэтому к этому. Надо относиться к этой возможности надо относиться как бы, так как как к эмбдингу да типа как Мы в прошлом уроке Мы разбирали мэмэдинг и Композицию Что Композицию мы используем Всегда, а эмбдинг

116
00:13:55.860 --> 00:14:05.950
Михаил Непряхин: в тех случаях когда это нужно и когда по другому нельзя ну Или когда Можно оно будет очень сложно а вот тут как бы такой изящный выход из какой то ситуации

117
00:14:06.210 --> 00:14:07.730
Михаил Непряхин: и то же самое

118
00:14:08.550 --> 00:14:13.830
Михаил Непряхин: когда, мы начинаем типизировать так вот функции, и их использовать

119
00:14:14.350 --> 00:14:20.750
Михаил Непряхин: это Должна быть какая-то Ситуация, в которой По-другому Написать будет слишком сложно

120
00:14:20.930 --> 00:14:28.470
Михаил Непряхин: ну то есть например, какие-нибудь обработчики хендлеры для сервера то есть вот там, это используется

121
00:14:29.120 --> 00:14:31.490
Михаил Непряхин: и по большому счету все

122
00:14:32.230 --> 00:14:34.190
Михаил Непряхин: Поэтому и

123
00:14:34.350 --> 00:14:40.400
Михаил Непряхин: в таком. Стиле писать не, рекомендуется но возможности, какие есть конечно надо понимать

124
00:14:41.270 --> 00:14:50.490
Михаил Непряхин: значит как Еще По-другому называется когда мы Объявляем нашу функцию наш тип как функцию

125
00:14:50.590 --> 00:14:55.480
Михаил Непряхин: значит вот аргумент который здесь принимается

126
00:14:56.250 --> 00:14:59.880
Михаил Непряхин: он называется аргумент первого Класса,

127
00:15:00.560 --> 00:15:08.480
Михаил Непряхин: и когда Мы передаем здесь число То Мы говорим Что Мы передаем вот число

128
00:15:08.610 --> 00:15:10.410
Михаил Непряхин: как Объект первого Класса,

129
00:15:10.820 --> 00:15:21.850
Михаил Непряхин: Когда Мы Передаем Функцию То это называется Что Мы Используем Функцию как Объект первого Класса, Или по английски Фест класс фанкшн

130
00:15:22.120 --> 00:15:37.020
Михаил Непряхин: просто Для информации для того чтобы Если чуть-чуть где-то встретились То это вот оно и есть То есть пес, класфанкшн или функция как объект первого Класса, это имеется в виду когда у нас функция выступает Типом

131
00:15:37.360 --> 00:15:47.100
Михаил Непряхин: которая либо в аргументах мы принимаем его либо мы возвращаем если мы возвращаем функцию то это тоже

132
00:15:47.250 --> 00:15:50.910
Михаил Непряхин: называется что Мы возвращаем функцию как объект первого класса

133
00:15:51.210 --> 00:15:52.570
Михаил Непряхин: шерсткласс факшн

134
00:15:53.360 --> 00:15:54.500
Михаил Непряхин: это и

135
00:15:55.220 --> 00:15:59.090
Михаил Непряхин: далее. Ну смотрите что значит нам удовлетворить этому типу

136
00:15:59.510 --> 00:16:03.010
Михаил Непряхин: ээ нам. Нужно Использовать полностью вот Эту сигнатуру

137
00:16:03.540 --> 00:16:14.450
Михаил Непряхин: и вот Я беру и пишу кастовную, функцию с Этим святой сигнатурой, и теперь эта функция она удовлетворяет вот этому. Типу,

138
00:16:15.370 --> 00:16:31.530
Михаил Непряхин: То есть это по Сути как бы как какое-то Ммм ограничение какое-то да продикатный Тип То есть что Мы типа вот обязан Эту сигнатуру удовлетворить и может что-то как-то типа на интерфейс походе да Можно сказать

139
00:16:31.720 --> 00:16:36.910
Михаил Непряхин: то же самое вот здесь Есть У меня допустим вот такой тип который и

140
00:16:37.530 --> 00:16:43.070
Михаил Непряхин: тип является функцией и эта функция она принимает инт и отдает инт

141
00:16:43.230 --> 00:16:54.140
Михаил Непряхин: и чтобы мне удовлетворить Этой функции допустим я вижу что вот какая-то функция принимает вот Эту функцию и чтобы мне Эту функцию создать мне нужен тип

142
00:16:54.260 --> 00:17:03.900
Михаил Непряхин: ну и

143
00:17:04.079 --> 00:17:11.670
Михаил Непряхин: а главное Чтобы сигнатура. Это совпадала значит Мы принимаем Инт возвращаем Инт все Мы будем Удовлетворить Эти. Функции

144
00:17:12.900 --> 00:17:13.750
Михаил Непряхин: а и

145
00:17:14.710 --> 00:17:16.550
Михаил Непряхин: так значит

146
00:17:17.569 --> 00:17:22.010
Михаил Непряхин: тут. Надо поговорить о том как вообще функция

147
00:17:23.270 --> 00:17:25.270
Михаил Непряхин: представлена в памяти

148
00:17:25.710 --> 00:17:30.120
Михаил Непряхин: то Есть вот когда мы объявляем функцию

149
00:17:30.260 --> 00:17:34.150
Михаил Непряхин: мы говорим что вот наши функции, будут вот с Таким типом

150
00:17:34.430 --> 00:17:39.710
Михаил Непряхин: а Это, вот эта функция да то же самое можно было бы сделать вот так вот

151
00:17:39.970 --> 00:17:42.000
Михаил Непряхин: то есть Мы бы сделали вот так вот

152
00:17:42.150 --> 00:17:48.980
Михаил Непряхин: это было бы один в один и то же самое, что и как бы аляс то есть это как бы ясно на тут. На ту сигнатуру

153
00:17:50.090 --> 00:17:53.860
Михаил Непряхин: сегодня я встретился в асфальт сам Сесть для звонка

154
00:17:54.110 --> 00:17:55.090
Михаил Непряхин: Ммм

155
00:17:56.440 --> 00:17:57.130
Михаил Непряхин: да и

156
00:17:57.250 --> 00:17:58.180
Михаил Непряхин: значит

157
00:17:59.250 --> 00:18:13.690
Михаил Непряхин: я здесь Делаю проверку что функция равновл. То есть вот этого меша зеркалью я здесь равно Не использую За то есть я ее Не объявляю я просто объявил, через вар и это значит там Внутри Будет зероэлью

158
00:18:14.070 --> 00:18:16.560
Михаил Непряхин: что Же Является, зеровелью

159
00:18:16.690 --> 00:18:19.750
Михаил Непряхин: от функции как объект первого Класса, нил

160
00:18:19.970 --> 00:18:21.180
Михаил Непряхин: Почему ни

161
00:18:21.630 --> 00:18:26.360
Михаил Непряхин: потому. Что функция как объект первого Класса, это указатель

162
00:18:26.620 --> 00:18:32.840
Михаил Непряхин: обычный указатель просто тонкий обычный указатель и ну, Тут вот

163
00:18:33.140 --> 00:18:36.420
Михаил Непряхин: вот можно проверить сколько занимает восемь байдент

164
00:18:37.640 --> 00:18:39.260
Михаил Непряхин: потому, что это просто указатель

165
00:18:40.850 --> 00:18:46.690
Михаил Непряхин: Давайте подумаем как функция вот Таким Образом объявлена представлена в памяти

166
00:18:52.060 --> 00:18:56.920
Михаил Непряхин: Давайте так какие Есть соображения то, Есть как и

167
00:18:57.970 --> 00:19:02.110
Михаил Непряхин: вот когда Мы объявляем вот Таким образом функцию

168
00:19:02.320 --> 00:19:09.680
Михаил Непряхин: то Что У нас Э Куда У нас указывает этот указатель то Есть Мы поняли Что. Указатель объект куча

169
00:19:10.740 --> 00:19:14.710
Михаил Непряхин: Ну да может быть в кучу а может быть Просто в Текстовой Области. Бинарника

170
00:19:14.930 --> 00:19:16.380
Михаил Непряхин: Ну вот и памяти Жене

171
00:19:18.160 --> 00:19:19.580
Михаил Непряхин: колстек

172
00:19:19.710 --> 00:19:26.910
Михаил Непряхин: Не понимаю тут сложно тут наверное проще этот вопрос будет задать. На анонимные функции но Пока простая функция то есть смотрите Если

173
00:19:27.750 --> 00:19:40.390
Михаил Непряхин: и Если Я прямо в тексте программы объявляю какую-то функцию то Ей даже и на кучу не надо быть ну потому что как бы она у нас и так в тексте программы записана

174
00:19:40.730 --> 00:19:45.590
Михаил Непряхин: вот и Поэтому когда я говорю что это у меня указатель

175
00:19:45.760 --> 00:20:01.470
Михаил Непряхин: я на самом деле не знаю как там она будет представлена либо этот указатель будет прямо, вот в текстовую область памяти и вот на эту функцию либо он все-таки скопирует ее и поместит в кучу тут как бы вопрос но смысл в том что

176
00:20:02.800 --> 00:20:04.640
Михаил Непряхин: надо понимать Что это указатель

177
00:20:05.800 --> 00:20:08.650
Михаил Непряхин: то есть вот нас стековая область астек

178
00:20:11.590 --> 00:20:12.630
Михаил Непряхин: и куча

179
00:20:13.020 --> 00:20:15.630
Михаил Непряхин: когда Мы делаем вот объявляем там вар,

180
00:20:15.940 --> 00:20:19.740
Михаил Непряхин: э Мы получаем указатель он восемь боит

181
00:20:21.190 --> 00:20:23.130
Михаил Непряхин: и он указывает

182
00:20:23.360 --> 00:20:26.010
Михаил Непряхин: ну либо в кучу либо

183
00:20:26.160 --> 00:20:38.390
Михаил Непряхин: в Текстовую область ээ памяти то есть которая была изначально ну нам, вот по сути без разницы хоть какую-то кучу хоть текст ну только в тексте она как бы там топором ее не вырубишь а есть кучу может горбачев коллектор собрать только в этом Разница

184
00:20:38.740 --> 00:20:43.020
Михаил Непряхин: вот и собственно говоря ну мы тупо вот на нее указываем

185
00:20:43.150 --> 00:20:47.970
Михаил Непряхин: и она Там у нас где то объявлена но Там принимает инт возвращает инт

186
00:20:48.930 --> 00:20:51.920
Михаил Непряхин: и собственно говоря когда мы потом Будем

187
00:20:52.570 --> 00:20:54.120
Михаил Непряхин: вот мы сделали

188
00:20:54.590 --> 00:20:55.570
Михаил Непряхин: вар

189
00:20:55.750 --> 00:20:58.950
Михаил Непряхин: фэн и вот эту сигнатуру функции, записали

190
00:20:59.370 --> 00:21:00.920
Михаил Непряхин: чтоб ее вызвать

191
00:21:01.360 --> 00:21:06.380
Михаил Непряхин: надо было сделать аф и круглые скобки то есть, вот это вот вызов функций,

192
00:21:07.260 --> 00:21:08.750
Михаил Непряхин: ту которую мы объявили

193
00:21:09.040 --> 00:21:11.630
Михаил Непряхин: ну и соответственно по указателю

194
00:21:12.010 --> 00:21:31.260
Михаил Непряхин: достанется то место, в памяти где вот эта вот функция Находится подставится. Здесь значение Которое Мы Сюда Подставим ну и в общем-то результат Мы Получим Там равно Мы Получим результат который я Сработал То Есть здесь в Принципе Ммм не то чтобы сильно сложно

195
00:21:31.360 --> 00:21:34.550
Михаил Непряхин: просто надо понимать Что

196
00:21:34.870 --> 00:21:37.220
Михаил Непряхин: когда вот таким образом объявляется

197
00:21:38.360 --> 00:21:41.710
Михаил Непряхин: функция Это, указатель это понято

198
00:21:43.910 --> 00:21:52.170
Михаил Непряхин: письмо до этого свадьба смотрели свой толстый указатель он сослит хаши из трех полей то есть там кроме указателя еще есть длина и Емкость.

199
00:21:52.460 --> 00:21:53.150
Михаил Непряхин: А

200
00:21:53.410 --> 00:21:56.800
Михаил Непряхин: м обычная функция Это просто Обычный указатель восемь Бай

201
00:21:58.900 --> 00:22:05.450
Михаил Непряхин: так значит вот Мы говорим Что вот У нас эта функция Так с таким-то типом равна

202
00:22:07.280 --> 00:22:11.680
Михаил Непряхин: просто Вот Я как бы указываю Что Вот Это Это Моя функция

203
00:22:12.350 --> 00:22:18.100
Михаил Непряхин: то есть смотрите если Я Так Вот Сделаю то я вызову Эту Функцию то есть это вызов функции,

204
00:22:18.360 --> 00:22:25.930
Михаил Непряхин: а без кобочек я говорю Что вот в Этой перемены Сейчас находится указатель на функцию

205
00:22:26.920 --> 00:22:35.920
Михаил Непряхин: можно Тип не указывать э Типы увидятся автоматически то есть как бы тут видно но издешка подсказывает какого типа это Функция

206
00:22:36.290 --> 00:22:47.640
Михаил Непряхин: вот ну допустим если нам надо там где-то борт да если нам где-то надо будет. Ее Использовать а там Тип Указан утром такой то в Принципе тоже не обязательно именно этого типа делать оно

207
00:22:48.060 --> 00:22:48.840
Михаил Непряхин: в и

208
00:22:49.000 --> 00:22:51.160
Михаил Непряхин: все равно как бы это

209
00:22:51.700 --> 00:22:59.730
Михаил Непряхин: произойдет Кастинг, типа и как бы все будет Работать и так То есть тут похоже на что-то похожее на утиную типизацию

210
00:23:00.000 --> 00:23:06.480
Михаил Непряхин: если сигнатура удовлетворяет То типа нельзя Создавать То есть это скорее просто аллея Там какое-то сокращенное название

211
00:23:07.170 --> 00:23:11.150
Михаил Непряхин: но и То даже если вы начинаете где То использовать функцию

212
00:23:11.500 --> 00:23:12.270
Михаил Непряхин: ааа

213
00:23:12.900 --> 00:23:26.760
Михаил Непряхин: либо это какая-то должна быть Вот прямо одна функция и она вот вот очень много раз повторяется Поэтому вытак я вам сделаю аляс но по-хорошему лучше Не, скрывать его если, у вас функция принимает функцию вот как, здесь

214
00:23:27.540 --> 00:23:34.430
Михаил Непряхин: ну вот сделайте вот так вот пусть она вот так вот явном виде это ну обычно такого страшного Не бывает но Там что нибудь

215
00:23:34.530 --> 00:23:53.010
Михаил Непряхин: какой-нибудь и

216
00:23:55.400 --> 00:24:02.320
Михаил Непряхин: так ну сказал ожидаться азов если, посмотреть сколько размер на стек это восемь бай

217
00:24:02.570 --> 00:24:14.420
Михаил Непряхин: ну вот Мы вызываем Мы создали нашу Функцию вот Мы подставляем сюда три-четыре результат получили печата а Там она внутри, это она просто что Она Там складывает Допросы Складного значения

218
00:24:15.070 --> 00:24:20.120
Михаил Непряхин: ну. То Же самое с инклементом создали Функцию Передали аргумент получили Результат

219
00:24:20.260 --> 00:24:27.390
Михаил Непряхин: Там Она просто инкриминирует Передали Один значит у меня Там счет у меня просто плюс один да ну, будет два соответственно

220
00:24:28.200 --> 00:24:33.110
Михаил Непряхин: так, и ну, да вот этот пример Что, Мы можем эту функцию туда передать

221
00:24:33.500 --> 00:24:38.330
Михаил Непряхин: и получить Другую функцию то есть тут я оборачиваю По сути ну

222
00:24:38.440 --> 00:24:41.760
Михаил Непряхин: конвертируй получается из одной функции в Другую

223
00:24:41.950 --> 00:24:55.860
Михаил Непряхин: а это функционирует на той функции, вот ну короче это такой антипатий как бы это лучше, не использовать только по назначению очень редко иногда по Сути показываем Вопросы, чтобы вы узнали что такое бывает в продуктовом Кодексе

224
00:24:56.000 --> 00:24:58.990
Михаил Непряхин: не надо описать не используется вообще

225
00:25:00.160 --> 00:25:02.950
Михаил Непряхин: дальше значит анонимная функция

226
00:25:03.870 --> 00:25:05.550
Михаил Непряхин: а вот здесь же поинтереснее

227
00:25:06.640 --> 00:25:13.840
Михаил Непряхин: анонимная функция ну собственно мы просто объявляем функцию без аляса то есть вот мы

228
00:25:14.330 --> 00:25:16.330
Михаил Непряхин: а объявили и

229
00:25:16.440 --> 00:25:30.520
Михаил Непряхин: в теле сразу ну всю Функцию вместе с тем прописываем ну а дальше Мы можем ее использовать точно Так же как Там когда Мы складывали то есть мы принимаем Два аргумента возвращаем просто складываем

230
00:25:31.730 --> 00:25:32.450
Михаил Непряхин: а

231
00:25:34.810 --> 00:25:39.670
Михаил Непряхин: это обычная функция и смотрите чтобы сделать синхронную функцию

232
00:25:40.600 --> 00:25:51.270
Михаил Непряхин: а параллельную синхронную функцию параллельно если у нас больше одного ядра доступна так она Синхронная будет в Любом Случае просто любая Синхронная в одном номере либо Синхронная по всем Ядрам Что Есть доступности

233
00:25:51.890 --> 00:25:58.440
Михаил Непряхин: а просто добавляет ключевое слово гоу и вот в этом месте у нас появляется

234
00:26:00.570 --> 00:26:03.400
Михаил Непряхин: параллелизм конкурентность Так сказать

235
00:26:03.890 --> 00:26:07.430
Михаил Непряхин: а мы когда встречаем вот эту вот инструкцию Гоу

236
00:26:07.750 --> 00:26:25.360
Михаил Непряхин: ну Мы про это позже Поговорим как, это под капотом как, это все Планируется то Есть этому прямо эта. Тема, лекция будет там Посвящена ну смысл в том Что оно начинает работать как бы рядышком параллельно. Как Будто бы если он с другими языками сравнивает как будто бы в другом потоке

237
00:26:27.550 --> 00:26:28.570
Михаил Непряхин: и им

238
00:26:29.410 --> 00:26:31.550
Михаил Непряхин: самое Интересное Замыкание

239
00:26:31.870 --> 00:26:44.030
Михаил Непряхин: ну кто-то не разделяет, Когда Говорят, анонимные функции кто-то прямо одинаково использует что замыкание что анонимная функция ну просто для грамотности, для правильности, если. У нас

240
00:26:45.210 --> 00:26:46.510
Михаил Непряхин: функция

241
00:26:47.210 --> 00:26:49.350
Михаил Непряхин: из колпа ничего не берет

242
00:26:49.810 --> 00:26:59.400
Михаил Непряхин: то это анонимная функция вот как здесь то есть она Без сай Дефектов она только вот то что в аргументах передается вот только

243
00:26:59.620 --> 00:27:04.450
Михаил Непряхин: это влияет на то Что функция отдаст то есть это

244
00:27:04.850 --> 00:27:07.450
Михаил Непряхин: чистая так называемая чистая функция

245
00:27:07.800 --> 00:27:16.740
Михаил Непряхин: вот если у нас есть сайт-эффекты если функция Не чистая если у нас Есть в Сколково вот как здесь какая-то перемена например, сам

246
00:27:17.200 --> 00:27:19.330
Михаил Непряхин: и тут, Мы объявляем

247
00:27:19.830 --> 00:27:27.930
Михаил Непряхин: анонимную Функцию в Которой используется вот эта вот Внешняя Переменная то такая функция называется замыканием

248
00:27:29.340 --> 00:27:30.440
Михаил Непряхин: и и

249
00:27:31.630 --> 00:27:32.870
Михаил Непряхин: важный момент

250
00:27:33.140 --> 00:27:35.860
Михаил Непряхин: переменная захватывается, по указателю

251
00:27:36.630 --> 00:27:49.910
Михаил Непряхин: Этого здесь не видно это происходит не явно но вот здесь вот Есть указатель что следующая тема. По указатель Поговорим он просто смысл в том что если вот здесь Внутри функции перемены будут меняться

252
00:27:50.470 --> 00:27:53.950
Михаил Непряхин: кто она изменится. И здесь то есть она извне тоже изменится.

253
00:27:54.070 --> 00:28:02.660
Михаил Непряхин: То есть замыкание так работает что оно замыкает все по указателям все что вы внутри функции, допустим есть еще какая то перемена

254
00:28:02.770 --> 00:28:04.190
Михаил Непряхин: перемена аи

255
00:28:05.820 --> 00:28:10.370
Михаил Непряхин: и вы внутри функции, говорите что, ай

256
00:28:10.850 --> 00:28:12.060
Михаил Непряхин: он бравну хвал

257
00:28:12.700 --> 00:28:15.550
Михаил Непряхин: когда вы здесь потом проверите

258
00:28:16.080 --> 00:28:22.410
Михаил Непряхин: ну ее надо вызвать конечно вот функцию функцию надо будет, вызвать вот переменная ай

259
00:28:23.370 --> 00:28:24.970
Михаил Непряхин: а будет, равна

260
00:28:25.890 --> 00:28:26.890
Михаил Непряхин: хахво

261
00:28:27.750 --> 00:28:29.100
Михаил Непряхин: после первого вызова,

262
00:28:30.570 --> 00:28:37.840
Михаил Непряхин: значит ну вот Мы сделали нашу наивную Функцию наше Замыкание, и чтобы его Вызвать Мы соответственно вот используем

263
00:28:38.070 --> 00:28:38.810
Михаил Непряхин: а

264
00:28:38.930 --> 00:28:49.150
Михаил Непряхин: на скобки и Таким образом Мы ее вызываем то есть здесь она у нас просто объявлена она у нас есть мы на нее получили указатель а здесь мы уже ее вызываем

265
00:28:50.200 --> 00:28:51.280
Михаил Непряхин: и и

266
00:28:51.490 --> 00:28:58.580
Михаил Непряхин: еще из особенностей смотрите вот когда анонимную функцию ну то есть это как бы частый патрон она начнет параллельно. Там запустить

267
00:28:58.740 --> 00:29:04.520
Михаил Непряхин: Мы мало того что ну вот так вот это синтаксизм объявление функции,

268
00:29:05.040 --> 00:29:06.480
Михаил Непряхин: и в конце

269
00:29:07.510 --> 00:29:10.420
Михаил Непряхин: а скобочки то есть мы ее тут же и вызываем

270
00:29:10.840 --> 00:29:20.810
Михаил Непряхин: То есть как бы если Это Не синхронные функции То в Этом обычно Нет смысла То есть Это почти Всегда Используется только с этими синронными функциями но с Ключом своем гол.

271
00:29:21.290 --> 00:29:23.460
Михаил Непряхин: Вот это вот внутри

272
00:29:24.680 --> 00:29:27.280
Михаил Непряхин: это как Будто, бы

273
00:29:27.410 --> 00:29:29.850
Михаил Непряхин: Мы ну сделали вот так вот

274
00:29:30.300 --> 00:29:32.040
Михаил Непряхин: а потом вызываем

275
00:29:32.520 --> 00:29:41.620
Михаил Непряхин: только ну как бы сахар сахар вот над этим ну тут, на самом деле сахар такой как бы по-другому и ты не напишешь а ну Нет можно можно нас смотреть значит

276
00:29:42.340 --> 00:29:44.250
Михаил Непряхин: Мы говорим про фэн

277
00:29:45.440 --> 00:29:47.670
Михаил Непряхин: фрэн Это Наша, Функция

278
00:29:48.390 --> 00:29:49.830
Михаил Непряхин: А дальше Голову.

279
00:29:51.250 --> 00:29:52.380
Михаил Непряхин: Вот Вот Так Вот

280
00:29:52.730 --> 00:29:56.770
Михаил Непряхин: То, Есть короче вот чтобы вот Это вот не писать вот так вот

281
00:29:57.090 --> 00:29:59.660
Михаил Непряхин: сокращенная запись

282
00:30:00.740 --> 00:30:02.880
Михаил Непряхин: которую все используют

283
00:30:04.530 --> 00:30:06.400
Михаил Непряхин: ну да вот она так и выглядит

284
00:30:06.770 --> 00:30:11.160
Михаил Непряхин: что, Мы сразу же Здесь вызываем сгу и сразу вызываем вот эти вот

285
00:30:11.530 --> 00:30:12.370
Михаил Непряхин: копки

286
00:30:13.050 --> 00:30:16.240
Михаил Непряхин: и Если у нас Здесь аргумент ну например, Там

287
00:30:16.380 --> 00:30:17.620
Михаил Непряхин: иксинт

288
00:30:19.500 --> 00:30:25.970
Михаил Непряхин: а то Мы его можем вот сюда вот и передать то есть вот в этом случае если бы у нас был икс

289
00:30:26.710 --> 00:30:28.970
Михаил Непряхин: вар икс инт

290
00:30:33.570 --> 00:30:35.570
Михаил Непряхин: вот Мы боевого Так вот Передали

291
00:30:35.740 --> 00:30:39.090
Михаил Непряхин: и вот эта функция вызвалась. Бы с аргументамикс

292
00:30:39.440 --> 00:30:45.110
Михаил Непряхин: То в этом случае Мы его Передаем вот Неожиданно Но вот сюда

293
00:30:46.060 --> 00:30:56.720
Михаил Непряхин: и это вот тоже, как бы так это немножко смущает но просто надо понимать что вот это вот вместо вот этого мы можем записать вот так вот то есть это такой сахар

294
00:30:56.830 --> 00:31:00.330
Михаил Непряхин: но гурутины часто запускаются просто Без аргументов

295
00:31:00.970 --> 00:31:09.030
Михаил Непряхин: и более того если, вам нужна этот аргумент Этой переменной извне но вы же просто берете и захватываете по

296
00:31:09.430 --> 00:31:12.440
Михаил Непряхин: по указателю все счастливые сюда

297
00:31:12.770 --> 00:31:19.490
Михаил Непряхин: так пропишете то Она и так здесь напечатается потому что она захватится не явно по указателю

298
00:31:20.210 --> 00:31:25.510
Михаил Непряхин: короче очень важный момент да как бы, Зафиксируете что вот замыкания

299
00:31:25.890 --> 00:31:29.980
Михаил Непряхин: Внутри себя захватывают переменные по указателю

300
00:31:31.120 --> 00:31:35.440
Михаил Непряхин: так Сейчас есть какие-то Вопросы, задайте и еще это нарисуем

301
00:31:37.590 --> 00:31:40.450
Михаил Непряхин: так а ссылка на функции эстетики наверное

302
00:31:42.140 --> 00:31:43.270
Михаил Непряхин: а

303
00:31:43.920 --> 00:31:52.690
Михаил Непряхин: ссылка на функции ну да конечно конечно и

304
00:31:52.960 --> 00:31:54.780
Михаил Непряхин: значит как бы

305
00:31:56.240 --> 00:31:58.530
Михаил Непряхин: смотрите у нас все на стеке

306
00:31:58.720 --> 00:32:11.920
Михаил Непряхин: почти Всегда Кроме указателей если. Вы видите указатель со звездочкой ну это почти седа куча опять. Же не Всегда не Всегда иногда но показатель может Указывать истекана стек

307
00:32:11.990 --> 00:32:22.550
Михаил Непряхин: такое Тоже, бывает вот но как. Правило звездочка Это значит что у нас в Стекке этот поинтер у Которого, восемь, бай

308
00:32:23.180 --> 00:32:35.530
Михаил Непряхин: то есть как, по размеру целого числа винт Твой симбат им шестьдесят четыре, восемь байден, указатель восемь бай вот а вот те данные на Которые он оказывает вот оно будет в куче

309
00:32:37.230 --> 00:32:38.400
Михаил Непряхин: как правило

310
00:32:40.700 --> 00:32:51.000
Михаил Непряхин: так если анонимная функция Использует фунт из глобальных. Склопа она Тоже по Еде Замыкание ну, да не ну, если анонимная функция ее примет

311
00:32:51.450 --> 00:32:53.260
Михаил Непряхин: как аргумент

312
00:32:53.430 --> 00:32:54.390
Михаил Непряхин: то Нет

313
00:32:55.100 --> 00:33:00.910
Михаил Непряхин: а если, она его примет вот как бы внутри вот здесь вот она будет, замыканием

314
00:33:01.090 --> 00:33:04.680
Михаил Непряхин: то есть, если, вы что-то передали в функцию

315
00:33:05.340 --> 00:33:11.350
Михаил Непряхин: а давайте Сейчас. Еще Зафиксируем Опять же гошенники как бы это используют терминологию Поэтому

316
00:33:11.480 --> 00:33:14.290
Михаил Непряхин: про это важно понимать о чем идет, речь,

317
00:33:14.670 --> 00:33:17.840
Михаил Непряхин: значит допустим темлит говорит ты вот написал функцию

318
00:33:18.380 --> 00:33:20.770
Михаил Непряхин: но Она нечистая

319
00:33:24.890 --> 00:33:32.000
Михаил Непряхин: напиши. Типа чистую функцию что такое чистая функция эта функция без Еще интернет без сайд

320
00:33:32.320 --> 00:33:33.480
Михаил Непряхин: Эффектов

321
00:33:38.130 --> 00:33:39.830
Михаил Непряхин: что такое Сайт эффекты

322
00:33:40.020 --> 00:33:51.750
Михаил Непряхин: то есть у нас есть либо глобальная переменная но глобальные перемены еще плохо да глобальные перемены мы не используем но вдруг да но есть глобальные перемены

323
00:33:52.080 --> 00:33:54.010
Михаил Непряхин: либо есть и

324
00:33:54.650 --> 00:34:02.330
Михаил Непряхин: на уровне пакета я Имею, в виду, либо есть локальная перемена вот на уровне допустим той функции в которой мы Сейчас находимся

325
00:34:07.910 --> 00:34:09.040
Михаил Непряхин: и и

326
00:34:09.570 --> 00:34:13.570
Михаил Непряхин: вот мы дальше работаем с нашей, функцией,

327
00:34:14.159 --> 00:34:26.080
Михаил Непряхин: ну в случае глобальной перемены у нас функция может быть и просто тоже на этом же уровне Сколпе ну Допустим вот у нас есть Анонимная функция да вот мы ее с ней начинаем работать. Мы там ее объявили

328
00:34:32.630 --> 00:34:40.540
Михаил Непряхин: и мы берем и Внутри используем эту Локальную или Глобальную перемену

329
00:34:42.620 --> 00:34:44.780
Михаил Непряхин: иные Таким образом

330
00:34:45.250 --> 00:34:47.620
Михаил Непряхин: получили сайт дефект

331
00:34:48.000 --> 00:34:50.730
Михаил Непряхин: то есть если, вот эта переменная поменяется

332
00:34:51.600 --> 00:34:54.320
Михаил Непряхин: или Допустим глобальную перемены мы Там используем

333
00:34:55.790 --> 00:34:58.790
Михаил Непряхин: если, еще хуже да то вообще прямо очень Плохо

334
00:34:58.930 --> 00:35:05.380
Михаил Непряхин: а если, вот эта вот переменная поменяется У нас Результат работы Функций, поменяется

335
00:35:05.720 --> 00:35:15.040
Михаил Непряхин: это значит что наша функция она зависит от сай Дефектов то есть она зависит от переменных Которые есть в сколково выше

336
00:35:15.360 --> 00:35:25.970
Михаил Непряхин: и это значит наша функция Не чистая потому Что У нее Поведение Не детерминированное оно зависит от внешних вот этих вот Условий

337
00:35:26.260 --> 00:35:43.920
Михаил Непряхин: Поэтому нужно Писать Стремиться Писать чистые функции Которые Не зависят от каких-то Там локальных Или глобальных перемен если вам нужно что то получить, в функцию как ее получать а в аргументах

338
00:35:47.750 --> 00:35:50.230
Михаил Непряхин: у вас есть аргументы,

339
00:35:51.380 --> 00:35:55.860
Михаил Непряхин: вот вот вы его вот здесь когда получаете что То в аргументах

340
00:35:56.500 --> 00:36:05.820
Михаил Непряхин: вы результат работы вашей функции зависит только от аргументов ни от каких там локальных глобальных переменных результат функций Не зависит

341
00:36:06.210 --> 00:36:18.520
Михаил Непряхин: и вы можете без Проблем вашу функцию там таинственные на нее написать как бы работа функций становится более предсказуемой более надежной более стабильной

342
00:36:18.540 --> 00:36:29.060
Михаил Непряхин: и вот если у вас весь, проект написан и

343
00:36:29.330 --> 00:36:45.220
Михаил Непряхин: ну опять же говорит глобальные перемены Мы вообще не используем ну кроме Там ошибок То есть просто используется ошибка как глобальные перемены и все То есть как бы про глобальные перемены можете, вообще забыть про какие-то флаги глобальные перемены там Которые Переключаются даже фитчу Флаку, допустим вот у вас есть фитча флагдам

344
00:36:49.050 --> 00:36:55.310
Михаил Непряхин: что такое фитнес флаг фитча флаг это когда вы сделали какую-то фичу.

345
00:36:55.600 --> 00:37:04.880
Михаил Непряхин: И Еще не готова другая система которая зависит от Этой фичи принимать ну

346
00:37:06.430 --> 00:37:13.060
Михаил Непряхин: короче говоря вы пока. Не хотите, ее включать вы ее хотите, закрыть под ив то есть вы просто закрываете подлив

347
00:37:13.720 --> 00:37:19.480
Михаил Непряхин: и потом когда нужно ее включить вы этот ив

348
00:37:19.860 --> 00:37:36.050
Михаил Непряхин: открываете с помощью перемен их окружения обычно просто в переменах окружения применяется переменная и у вас в иф открывается фитча становится доступно вы как бы ее так динамически можете включать выключать да как бы хорошая! Практика и все такое

349
00:37:36.370 --> 00:37:43.670
Михаил Непряхин: но эту фичу, можно сделать вот этот флаг включения можно сделать глобальной переменной

350
00:37:44.090 --> 00:37:48.930
Михаил Непряхин: а можно через аргументы функции передать

351
00:37:49.120 --> 00:37:51.250
Михаил Непряхин: ну Там какой то конфликт на томбот

352
00:37:51.700 --> 00:37:55.180
Михаил Непряхин: конфик и Там вот это вот включение

353
00:37:55.340 --> 00:37:59.300
Михаил Непряхин: какой способ выбрать естественно через аргументы

354
00:37:59.590 --> 00:38:01.890
Михаил Непряхин: то есть сам Ради уж как бы привыкать я к тому что

355
00:38:02.710 --> 00:38:03.650
Михаил Непряхин: м

356
00:38:04.340 --> 00:38:19.210
Михаил Непряхин: как я сказал до этого что вот функция как объект первого Класса, это эээ инструмент это микроскоп для Забивания, вот только вот решения, каких то узких. Задач, то же самое здесь значит Замыкание

357
00:38:19.270 --> 00:38:27.680
Михаил Непряхин: Это, очень редко используем инструмент там где без этого было бы либо очень сложный. Код либо Но как то По Другому совсем нельзя

358
00:38:27.900 --> 00:38:33.510
Михаил Непряхин: по большому счету мы это стараемся избегать и не используем но просто такое есть мы это понимаем мы это знаем

359
00:38:33.660 --> 00:38:37.370
Михаил Непряхин: потому что когда что-то вы берете из окружения

360
00:38:37.900 --> 00:38:44.510
Михаил Непряхин: но вы Не можете контролировать все окружение вы запоминаете что ли Будете Вот там у меня функция она берет Что из окружения

361
00:38:44.550 --> 00:39:04.310
Михаил Непряхин: надо понимать а в каком значении Эти перемены а Там Мы загрузили Сейчас конфликт он вот такой ли сякой зачем это надо не надо от Этого зависеть когда У вас есть функция и все что делает эта функция все с Чем Она работает все Передается в аргументах

362
00:39:05.380 --> 00:39:06.380
Михаил Непряхин: вы

363
00:39:06.710 --> 00:39:19.820
Михаил Непряхин: примените полный Контроль вы просто читаете тему, Функций и вам не надо задумываться О том Что Что То Там извне берется Поэтому даже конфиги в фичурфаке чего угодно все все все все передаем через аргументы

364
00:39:24.400 --> 00:39:25.210
Михаил Непряхин: так

365
00:39:30.660 --> 00:39:33.340
Михаил Непряхин: а Куда используется нюансыпература. Разводка

366
00:39:33.510 --> 00:39:40.380
Михаил Непряхин: ээ ну? По обычно это вот вот это классический пример а все остальное Прям редкость.

367
00:39:40.560 --> 00:39:45.140
Михаил Непряхин: Если Анонимная функция использует Функцию из глобального сколопа она тоже тогда так

368
00:39:45.500 --> 00:39:47.390
Михаил Непряхин: а Если Объект аргумент

369
00:39:49.310 --> 00:40:07.780
Михаил Непряхин: но Если я не. Очень понял. Вопрос а Если Объект аргумент ну да оно нормально да мы Объекты как Аргументы принимаем то есть весь, смысл в том что просто вот здесь допустим у нас есть какой-то ну Объектов Нет гошки объекты они доста называют Структурой объектами вот У нас есть структура какая-то

370
00:40:07.890 --> 00:40:10.420
Михаил Непряхин: тоже соответственно У нас есть структура

371
00:40:16.020 --> 00:40:19.930
Михаил Непряхин: Вот ну и Мы Берем Эту структуру

372
00:40:20.190 --> 00:40:25.780
Михаил Непряхин: ну вот это я анонимную структуру сделал Так Тоже можно вот мы ее принимаем ну Как бы все нормально

373
00:40:27.710 --> 00:40:33.910
Михаил Непряхин: Так по обращению к глобальным константам из функции, Не, Является эффект константом Нет

374
00:40:34.490 --> 00:40:48.090
Михаил Непряхин: и к ошибкам Тоже, Нет то есть у нас как бы из глобального и

375
00:40:48.400 --> 00:40:52.740
Михаил Непряхин: единственные глобальные перемены Которые мы Используем это ошибки

376
00:40:53.180 --> 00:41:11.730
Михаил Непряхин: и то я вам покажу Способ как их делать константами и

377
00:41:11.880 --> 00:41:20.380
Михаил Непряхин: конечно если бы они были константами барабауджа но мы их используем как константы по Сути так все аргументы. Функции Передаются по значению Не считая пандекс

378
00:41:21.030 --> 00:41:23.670
Михаил Непряхин: так Это хороший вопрос а

379
00:41:23.960 --> 00:41:26.700
Михаил Непряхин: Которое Мы кстати Не озвучивали да

380
00:41:27.090 --> 00:41:28.610
Михаил Непряхин: Давайте поговорим про это

381
00:41:28.800 --> 00:41:31.370
Михаил Непряхин: значит вот У нас есть

382
00:41:31.750 --> 00:41:32.780
Михаил Непряхин: функция

383
00:41:37.510 --> 00:41:38.650
Михаил Непряхин: а на

384
00:41:38.780 --> 00:41:41.770
Михаил Непряхин: принимают какие то аргументы значит вопрос

385
00:41:42.070 --> 00:41:43.020
Михаил Непряхин: как

386
00:41:43.170 --> 00:41:47.430
Михаил Непряхин: Принимаются аргументы функцию по значению

387
00:41:47.530 --> 00:41:49.430
Михаил Непряхин: по указателю по ссылке

388
00:41:49.880 --> 00:41:54.480
Михаил Непряхин: значит Давайте поговорим об этом Что вообще есть есть

389
00:41:54.700 --> 00:41:56.670
Михаил Непряхин: значение увелью

390
00:41:57.500 --> 00:41:58.530
Михаил Непряхин: есть

391
00:41:58.860 --> 00:42:00.980
Михаил Непряхин: указатель поинтер

392
00:42:04.570 --> 00:42:06.890
Михаил Непряхин: есть сынка

393
00:42:09.220 --> 00:42:12.510
Михаил Непряхин: Блин Как Же Там, ссылка то греф референдум

394
00:42:20.230 --> 00:42:22.430
Михаил Непряхин: есть Еще

395
00:42:22.790 --> 00:42:26.140
Михаил Непряхин: не знаю, как Там, на английском Ну типа

396
00:42:27.020 --> 00:42:41.120
Михаил Непряхин: может быть линк Или Как Там, короче есть Языки где еще есть ссылка не как референс а вот прям другая ссылка вот Давайте поговорим значит об, этом значит вот первый, вариант не Уверен, как называется

397
00:42:41.230 --> 00:42:47.530
Михаил Непряхин: Этакая. Это ссылки но по русски была сынка значит это когда мы в коде

398
00:42:47.680 --> 00:42:49.610
Михаил Непряхин: вот у нас есть какие то переменные

399
00:42:49.890 --> 00:42:53.110
Михаил Непряхин: и мы их используем как сынки

400
00:42:53.410 --> 00:42:56.010
Михаил Непряхин: и они по Сути это

401
00:42:57.260 --> 00:43:05.870
Михаил Непряхин: допустим есть переменная и мы используем в коде то есть этого скотт и мы используем по коду ссылки

402
00:43:06.480 --> 00:43:15.010
Михаил Непряхин: и по сути это в памяти представлено как просто одно, и то же то есть это просто все одно, и То же и вот такого

403
00:43:15.180 --> 00:43:16.400
Михаил Непряхин: в гол Нет

404
00:43:16.510 --> 00:43:18.500
Михаил Непряхин: То есть Сынок в Голову. Нет

405
00:43:23.130 --> 00:43:25.210
Михаил Непряхин: а дальше про референдум

406
00:43:25.630 --> 00:43:27.300
Михаил Непряхин: значит референдум

407
00:43:27.540 --> 00:43:34.420
Михаил Непряхин: это понятие Которое власти То есть ссылки власти называют референдумами

408
00:43:35.360 --> 00:43:39.230
Михаил Непряхин: и что Это такое Это поинтер

409
00:43:40.030 --> 00:43:43.200
Михаил Непряхин: То есть в памяти он представлен как указатель

410
00:43:44.490 --> 00:43:47.980
Михаил Непряхин: но с гарантиями что он не может быть нил

411
00:43:49.380 --> 00:44:03.590
Михаил Непряхин: и ну вот в Этом вся Разница то есть вот в Расте как бы Пошли дальше эволюционно и придумали Что Ну Как я вам Говорил Что пойнтер Он Же может быть Разменован да

412
00:44:03.670 --> 00:44:10.130
Михаил Непряхин: и У нас ни. Упоинтер ресепшена Это Топ Один Топ- Два ошибки при когда Мы Работаем с гошкой

413
00:44:10.240 --> 00:44:13.210
Михаил Непряхин: власти Пошли дальше и Придумали такой Тип

414
00:44:13.440 --> 00:44:26.920
Михаил Непряхин: Которые Не может Быть Ним как. Бы типа исправили ошибку, на миллион долларов, но ценой катастрофического усложнения Кода, и Поэтому от этого там борачи бора у чекер и вот это вот все Заимствования,

415
00:44:27.020 --> 00:44:35.150
Михаил Непряхин: это вот весь акт потому что добавились вот эти вот референсы и как бы слава богу что их в го нет потому что но они

416
00:44:35.170 --> 00:44:47.540
Михаил Непряхин: может безопасности и добавляют но с этим неудобно работать и как Будто такой ценой как это сделано власти мне это не нравится. И когда Говорят, ругают прорасты то в основном Говорят, про этот про эти ссылки

417
00:44:48.520 --> 00:44:56.040
Михаил Непряхин: Дальше значит Что есть в гол, в гусе всего есть Два варианта как мы можем принять

418
00:44:57.480 --> 00:45:02.850
Михаил Непряхин: как на стыке, будет представлен тип либо его значение

419
00:45:03.000 --> 00:45:06.620
Михаил Непряхин: это и

420
00:45:07.050 --> 00:45:08.140
Михаил Непряхин: а и

421
00:45:08.550 --> 00:45:10.650
Михаил Непряхин: ну, там фло ты вот эти все

422
00:45:11.740 --> 00:45:13.410
Михаил Непряхин: Или указатель

423
00:45:13.530 --> 00:45:22.710
Михаил Непряхин: это функция тонкий указатель это слайс толстый указатель Там интерфейс Мапа вся страна

424
00:45:23.950 --> 00:45:26.470
Михаил Непряхин: и Они Могут быть Нилами

425
00:45:27.790 --> 00:45:29.160
Михаил Непряхин: и и

426
00:45:30.850 --> 00:45:36.100
Михаил Непряхин: в памяти на стеке это представлено ну. Указатель как восемь бай

427
00:45:36.380 --> 00:45:39.460
Михаил Непряхин: ну. Собственно как какие инт им тоже восемь бай

428
00:45:41.510 --> 00:45:42.500
Михаил Непряхин: и и

429
00:45:44.480 --> 00:45:45.960
Михаил Непряхин: сымок Нет

430
00:45:46.400 --> 00:45:48.210
Михаил Непряхин: Поэтому когда кто то говорит

431
00:45:49.760 --> 00:45:51.910
Михаил Непряхин: про указатели как Просынки

432
00:45:52.740 --> 00:46:10.710
Михаил Непряхин: с одной стороны Это неправильно и Раньше очень часто исправляли и на цебесах тоже типа короче был такой маркер что если вы путаете указатель и Сынку то Это говорит о Том что вы тебе вообще не в Курсе вот этого

433
00:46:11.020 --> 00:46:20.180
Михаил Непряхин: потому Что Кое-какая. Ссылка Нет в гоу ссылок и Говорить Ссылка про указатель неправильно потому Что

434
00:46:21.140 --> 00:46:24.170
Михаил Непряхин: а значит Еще Раз чем отличается указатель от сроки

435
00:46:24.400 --> 00:46:32.800
Михаил Непряхин: указатель в цике. Представлен восьми байтами Которые указывают в кучу на реальное значение

436
00:46:32.910 --> 00:46:34.300
Михаил Непряхин: а с сынка

437
00:46:34.500 --> 00:46:35.730
Михаил Непряхин: это а

438
00:46:37.670 --> 00:46:40.800
Михаил Непряхин: Допустим вот у, нас Есть Ссылка на инт

439
00:46:41.410 --> 00:46:44.890
Михаил Непряхин: и везде Где сынка просто Будет вот этот инт

440
00:46:45.080 --> 00:46:50.920
Михаил Непряхин: как бы ссылки Нет в ронтайме ее Нет в памяти Ссылка это просто

441
00:46:51.060 --> 00:46:55.800
Михаил Непряхин: э типа тоже самое. Значение просто как бы

442
00:46:56.140 --> 00:47:07.440
Михаил Непряхин: такая и

443
00:47:07.570 --> 00:47:13.100
Михаил Непряхин: но врать ссылки но вот эти референсы они действительно точно такие же как поинтер

444
00:47:13.570 --> 00:47:14.480
Михаил Непряхин: и вот

445
00:47:16.220 --> 00:47:28.590
Михаил Непряхин: но Говорят, Всымочный тип вот когда играет Сымочный тип это ок ну типа Еще пропоинтеры Говорят, что это Сумочный тип и тогда вот ну, эта. Формулировка еще ничего но это не Ссылка это именно, указатель

446
00:47:28.900 --> 00:47:38.990
Михаил Непряхин: так вот в Голову. Все значения Всегда, копируются вот когда вот мы в аргумент функции, передаем что то

447
00:47:39.210 --> 00:47:41.460
Михаил Непряхин: происходит копирование

448
00:47:42.280 --> 00:47:49.300
Михаил Непряхин: и еще Говорят что все значения ну как бы все аргументы в Гоу они передаются по значению

449
00:47:49.930 --> 00:47:52.010
Михаил Непряхин: но как бы Значением

450
00:47:52.150 --> 00:47:54.140
Михаил Непряхин: иногда может быть указатель

451
00:47:54.680 --> 00:47:59.410
Михаил Непряхин: и этот указатель просто скопируется допустим передаем инд вот здесь у нас ин

452
00:47:59.900 --> 00:48:01.710
Михаил Непряхин: ну он Сюда скопируется

453
00:48:01.850 --> 00:48:05.220
Михаил Непряхин: был насинт вот Копия Инта

454
00:48:06.350 --> 00:48:10.180
Михаил Непряхин: Аа был у нас бул, Тоже, будет Копия була

455
00:48:10.500 --> 00:48:15.530
Михаил Непряхин: а если у нас передается слайс Вот Мы с вас передаем и Там

456
00:48:15.780 --> 00:48:19.190
Михаил Непряхин: ну сосать на плохой пример с функцией например, а потом Мы Функцию передаем

457
00:48:19.300 --> 00:48:22.440
Михаил Непряхин: был наш указатель на Функцию

458
00:48:22.740 --> 00:48:29.890
Михаил Непряхин: и Мы его сюда передаем что случится он скопируется То есть указатель это просто число

459
00:48:30.080 --> 00:48:35.020
Михаил Непряхин: ну. Номер ячейки в памяти Да и Мы просто он занимает восемь бай на стыке

460
00:48:35.590 --> 00:48:38.340
Михаил Непряхин: и мы просто берем и копируем его сюда

461
00:48:38.880 --> 00:48:45.690
Михаил Непряхин: и у нас здесь получается вот этот указатель восемь байденц таких копия

462
00:48:46.110 --> 00:48:53.640
Михаил Непряхин: и Поэтому как бы, просто запомнить Что в гоу вообще Всегда, все копируется

463
00:48:53.940 --> 00:48:56.660
Михаил Непряхин: просто иногда может скопироваться указатель

464
00:48:56.790 --> 00:49:08.260
Михаил Непряхин: который будет, Указывать куда-то на кучу и

465
00:49:09.190 --> 00:49:13.140
Михаил Непряхин: есть либо значение либо указатели

466
00:49:13.550 --> 00:49:20.240
Михаил Непряхин: указатель указывает почти Всегда в кучу можем считать грубое что указатель это

467
00:49:20.400 --> 00:49:22.830
Михаил Непряхин: а значит восемь бай

468
00:49:22.940 --> 00:49:25.990
Михаил Непряхин: адрес ячейки памяти в куче

469
00:49:26.630 --> 00:49:29.390
Михаил Непряхин: и Все-все

470
00:49:29.590 --> 00:49:34.050
Михаил Непряхин: в аргументы функции приходит через копирование

471
00:49:34.690 --> 00:49:45.170
Михаил Непряхин: вот с слайсом тут, особый случай может ослабить эта структура она Тоже копируется Но Внутри она имеет. Указатель Но про Это Мы прям Это отдельно очень Подробно говорим поговорим Тоже на Пальцах

472
00:49:46.880 --> 00:49:50.550
Михаил Непряхин: Так Давайте Сделаем перерыв и на вопросы, отвечу

473
00:49:52.270 --> 00:49:54.900
Михаил Непряхин: и можете задать Еще вопрос если бы че то было непонятно

474
00:53:28.710 --> 00:53:31.410
Михаил Непряхин: так Давайте напишите про

475
00:53:32.590 --> 00:53:41.540
Михаил Непряхин: про разницу значения самки, указатель вообще как, будто. Это вот это более-менее понятно, чего Ты рассказывал

476
00:53:41.980 --> 00:53:44.160
Михаил Непряхин: Или это пока сложно,

477
00:53:47.260 --> 00:53:48.560
Михаил Непряхин: так

478
00:53:52.030 --> 00:53:58.880
Михаил Непряхин: вот короче отвечая на вопрос на этот вот что все аргументы функций продаются по значению нечто пойндр

479
00:53:59.310 --> 00:54:06.140
Михаил Непряхин: вообще все передается по значению да как бы ответ такой что все передается по значению Все Копируется

480
00:54:07.260 --> 00:54:08.950
Михаил Непряхин: и указатели. Тоже

481
00:54:11.720 --> 00:54:13.050
Михаил Непряхин: с звука Это хаш

482
00:54:13.700 --> 00:54:16.260
Михаил Непряхин: Нет

483
00:54:16.970 --> 00:54:18.620
Михаил Непряхин: Нет Срок Это не хаш

484
00:54:20.590 --> 00:54:23.010
Михаил Непряхин: а пайтон с рук указывает на объект в памяти

485
00:54:23.310 --> 00:54:36.830
Михаил Непряхин: ну То Есть так объекты хранятся в кучу ссылка является Целым Числом Представляющим адрес компьютерной памяти То Же самое Все как Будто бы никакой разницы между ссылкой в падник, да

486
00:54:36.990 --> 00:54:40.180
Михаил Непряхин: то есть вот это вот Описание указателя

487
00:54:40.810 --> 00:54:44.820
Михаил Непряхин: и так как в других языках как бы и

488
00:54:45.650 --> 00:54:48.310
Михаил Непряхин: Тип называется сумочный Тип

489
00:54:48.950 --> 00:54:50.950
Михаил Непряхин: сокращен гринград сынка

490
00:54:51.640 --> 00:54:53.060
Михаил Непряхин: но и

491
00:54:53.840 --> 00:54:56.110
Михаил Непряхин: когда вы говорите сынка

492
00:54:56.660 --> 00:55:02.770
Михаил Непряхин: то Об этом Можно по Разному думать оно вызывает вопросы, что Засылка

493
00:55:03.620 --> 00:55:05.930
Михаил Непряхин: и Тем Более когда

494
00:55:06.210 --> 00:55:08.730
Михаил Непряхин: Ну, короче лучшее

495
00:55:09.200 --> 00:55:14.020
Михаил Непряхин: говорить Всегда указатель потому Что Ну, в го как бы Есть указатели сымок нет Есть указатели

496
00:55:14.380 --> 00:55:17.700
Михаил Непряхин: указатель Это Сумочный тип но он указатель

497
00:55:17.890 --> 00:55:21.950
Михаил Непряхин: но вот по Сути То что вы описали так как в пайтоне То же самое

498
00:55:22.080 --> 00:55:24.210
Михаил Непряхин: так Пролинг я очень понял Нужен например,

499
00:55:25.600 --> 00:55:29.460
Михаил Непряхин: и Не, помню в каком Там Языке горчат То ли

500
00:55:29.750 --> 00:55:48.640
Михаил Непряхин: вот все есть около. Ссылки Или Нет в плюсах есть ссылки Или Нет вот короче не знаю с каким, языком где эта тема есть что как бы там сынка это просто, как бы алиас на как бы такое

501
00:55:48.890 --> 00:56:04.650
Михаил Непряхин: такая Мягкая. Ссылка которая есть только вот как бы она здесь пока Программа, не запущена когда Программа, запустилась это все просто становится как бы копиями, это одно, и то же если она меняется где-то то Она везде меняется

502
00:56:04.880 --> 00:56:07.620
Михаил Непряхин: то есть как бы это такая сущность которая

503
00:56:09.010 --> 00:56:12.800
Михаил Непряхин: но вот в Голову. Такого Нет и Поэтому как бы

504
00:56:13.300 --> 00:56:21.070
Михаил Непряхин: У нас Нет каких-то структур, которых Нет воронтайми У нас все равно все Представлено чем-то

505
00:56:21.540 --> 00:56:24.070
Михаил Непряхин: и Поэтому как бы

506
00:56:24.230 --> 00:56:26.470
Михаил Непряхин: конечно суть в том Что просто

507
00:56:26.890 --> 00:56:37.790
Михаил Непряхин: Не, надо Называть указателей ссылка вот и все скажите говорите указатель и это будет как бы и профессиональнее и вас. Всегда и поймут и Вопросы, не будут возникать потому. Что типа

508
00:56:37.970 --> 00:56:48.080
Михаил Непряхин: можно конечно поинтер перевести. Как ссылка но ведь, и для ссылок очень много слов и референдум. Как Бы ильинки там Еще Есть все эти

509
00:56:48.590 --> 00:56:51.430
Михаил Непряхин: что там Еще есть, Еще что-то Подобное какие-то слова

510
00:56:51.540 --> 00:56:57.370
Михаил Непряхин: а просылка Не очень понятна но напрямую в голландии короче да. Может просто запомнить что в Гоу нетсылок

511
00:56:57.950 --> 00:57:02.370
Михаил Непряхин: для больших структур, дорогая операция, получается м интересный вопрос

512
00:57:02.990 --> 00:57:06.080
Михаил Непряхин: вот сразу же ход мысли да смотрите значит

513
00:57:06.190 --> 00:57:09.650
Михаил Непряхин: Раз, у нас в аргументах все копируется

514
00:57:09.870 --> 00:57:14.300
Михаил Непряхин: то ведь Получается если структура будет большой то операция будет дорогой

515
00:57:15.060 --> 00:57:16.560
Михаил Непряхин: по факту

516
00:57:18.130 --> 00:57:19.370
Михаил Непряхин: она будет

517
00:57:19.600 --> 00:57:26.290
Михаил Непряхин: как бы по памяти Действительно дорогой потому что Ну это Будет находиться на стекле и стекло больше

518
00:57:27.040 --> 00:57:32.650
Михаил Непряхин: Но она Будет быстрее эта опираться потому что если вы хотите, скорость

519
00:57:32.820 --> 00:57:37.120
Михаил Непряхин: То вы работаете без указателей

520
00:57:37.240 --> 00:57:39.190
Михаил Непряхин: когда У вас Появляются указатели?

521
00:57:40.660 --> 00:57:46.840
Михаил Непряхин: У вас Появляются ну? Во-первых надо провоцировать Раз, указатель значит в куче

522
00:57:47.020 --> 00:57:58.120
Михаил Непряхин: надо провоцировать эту память она конечно там очень оптимально все сделана но все равно это долго это не просто взять на стыке там положить да и

523
00:57:58.650 --> 00:58:05.790
Михаил Непряхин: ну не в этом проблема а проблема в том Что у нас горбачев лектор есть который эти указатели трекают

524
00:58:05.790 --> 00:58:19.690
Михаил Непряхин: и потом их собирает а там есть топ за ворот и все остальное Поэтому чем вы Если У вас Нет Проблем. С Хранением памяти То есть. Там ваши объекты они Не очень большие вы в память Не упираетесь

525
00:58:20.340 --> 00:58:29.440
Михаил Непряхин: То вообще Нет смысла а Там экономить и Там обязательно Использовать указатели. Только из Этой экономии

526
00:58:29.650 --> 00:58:35.580
Михаил Непряхин: и в целом такая история что просто надо понимать что

527
00:58:35.710 --> 00:58:38.940
Михаил Непряхин: вы почти Всегда, можете работать со значениями

528
00:58:39.210 --> 00:58:48.130
Михаил Непряхин: и только Иногда очень редко с указателями просто когда люди приходят из других языков? Они по привычке как бы на типа Всегда, работают Указателями

529
00:58:48.380 --> 00:58:53.660
Михаил Непряхин: и когда объявляют какую нибудь структуру Делают. Ее автоматом указателем

530
00:58:54.130 --> 00:59:13.340
Михаил Непряхин: и соответственно Делают. Локацию в коробочку-лекторы ну во-первых Делают. Локацию в куче А потом горбушка лектор слез его собирает и если У вас много циклов то у вас большая нагрузка на горбушка лектор и если б вы просто бы, эту структуру сделали не по значению ой не по указателю по значению

531
00:59:13.940 --> 00:59:31.340
Михаил Непряхин: да она бы здесь копировалась с Функцией функции, но это такие копейки я Там проводил тесты когда ну типа вот Порог когда уже надо делать, указатель он просто очень большой и по Сути можно запомнить что какая бы Ни была у вас структура

532
00:59:31.460 --> 00:59:37.580
Михаил Непряхин: ну, в Принципе можно почти Всегда, ее Передавать просто по значению Но То есть копировать каждый Раз с Функцией функции

533
00:59:37.710 --> 00:59:41.740
Михаил Непряхин: и только если У вас какой-то массив который типа там уже

534
00:59:41.740 --> 01:00:01.550
Михаил Непряхин: больше. Мегабайта и

535
01:00:03.810 --> 01:00:04.510
Михаил Непряхин: эээ

536
01:00:07.390 --> 01:00:08.920
Михаил Непряхин: концептуал

537
01:00:09.460 --> 01:00:14.110
Михаил Непряхин: ну вот здесь Опять же используется референдум вот да вот видите как Бы Алиас

538
01:00:14.780 --> 01:00:15.690
Михаил Непряхин: да

539
01:00:19.340 --> 01:00:20.370
Михаил Непряхин: вот

540
01:00:20.890 --> 01:00:22.440
Михаил Непряхин: короче говоря

541
01:00:23.620 --> 01:00:36.480
Михаил Непряхин: важно понимать что да вот поинтер это значение это вэлью но это вэлью адреса в памяти где то ну либо в кучу ребятки чаще всего в кучу

542
01:00:37.300 --> 01:00:55.250
Михаил Непряхин: вот и если вы используете сын кино какие нибудь на других языках бывает у вас здесь нету копирования Но У вас очень много Проблем из этого возникает а когда вы работаете с указателем вы сразу же избегаете Э

543
01:00:55.450 --> 01:00:57.300
Михаил Непряхин: целого класса. Ошибок

544
01:00:57.430 --> 01:00:58.670
Михаил Непряхин: Потому что

545
01:00:59.080 --> 01:01:06.120
Михаил Непряхин: неспоставимая вам До этого рассказал историю про чистые функции, сай дефекты

546
01:01:06.800 --> 01:01:09.060
Михаил Непряхин: понимаете а

547
01:01:09.530 --> 01:01:10.670
Михаил Непряхин: сынка

548
01:01:10.950 --> 01:01:20.310
Михаил Непряхин: она похожа вот на какую-то глобальную либо вокальную переменную То есть Это То Что может где-то Измениться и У вас тоже поменяется

549
01:01:20.710 --> 01:01:22.520
Михаил Непряхин: а указатель

550
01:01:22.730 --> 01:01:33.730
Михаил Непряхин: Он Где бы Ни Был Он Всегда точно указывает на одно, и То же место, То Есть ну, что указатель Это вот значение Это адрес ячейки памяти

551
01:01:34.170 --> 01:01:35.540
Михаил Непряхин: и Поэтому

552
01:01:35.740 --> 01:01:49.250
Михаил Непряхин: М-м почему как бы вообще как бы ссылки-то вот возникли и потому, что вы Экономите вот наверное копирование вы его Не совершаете и где-то вы ускоряете можете, ускорить

553
01:01:49.480 --> 01:01:58.340
Михаил Непряхин: вы можете там очень много Функций написать и не будете за это платить а в гоу эти восемь бай тем не менее вы скопируете когда будете вызывать функцию

554
01:01:58.800 --> 01:02:07.560
Михаил Непряхин: и это как бы То место где его отголо чуть медленнее на самом деле фигнянтом это не так важно но зато

555
01:02:07.750 --> 01:02:16.660
Михаил Непряхин: а вот это как бы улучшение благодаря которому Мы получаем опять же вот Эти, вот Чистые функции Без сай дефектов

556
01:02:16.920 --> 01:02:19.940
Михаил Непряхин: яиц беганцев целый класс ошибок

557
01:02:20.330 --> 01:02:26.010
Михаил Непряхин: Не говорится как же показатели так да Что имеете в виду по ту сторону водоворот

558
01:02:27.020 --> 01:02:29.430
Михаил Непряхин: короче говоря когда

559
01:02:29.530 --> 01:02:31.960
Михаил Непряхин: У Нас происходит сборка мусором

560
01:02:40.790 --> 01:02:47.860
Михаил Непряхин: когда мы начинаем юзать указатели вот Сейчас по указателю Будем говорить как Раз значит когда мы начинаем Ездить указатели

561
01:02:51.890 --> 01:02:55.510
Михаил Непряхин: и авоцировать объекты в кучу

562
01:02:56.480 --> 01:02:58.630
Михаил Непряхин: То вот и

563
01:02:59.030 --> 01:03:05.520
Михаил Непряхин: каждые сколько-то Там ми. Ми. Микросекунд Включается гарбочкой Лектор

564
01:03:06.480 --> 01:03:09.230
Михаил Непряхин: и У Него есть несколько стадий

565
01:03:09.480 --> 01:03:13.470
Михаил Непряхин: значит ну Там по-моему четыре стадии основные

566
01:03:14.040 --> 01:03:25.660
Михаил Непряхин: и ну какие у него этапы есть во Первых просто он ищет вот эти вот указатели, то есть он проходит по всем. Объектам в кучу и просто смотрит есть

567
01:03:25.780 --> 01:03:29.170
Михаил Непряхин: указатель кто то указывает на него или нет

568
01:03:29.390 --> 01:03:34.300
Михаил Непряхин: Если указателя нет Ну Если указатель есть он помешает ага указатель есть

569
01:03:34.900 --> 01:03:44.330
Михаил Непряхин: а на каком-то этапе то есть есть этап просто Разметки Что. Вот указатель есть этап когда он трекает Что. Ага указателей не стало

570
01:03:45.190 --> 01:03:49.320
Михаил Непряхин: есть этап когда он должен

571
01:03:49.640 --> 01:03:52.570
Михаил Непряхин: Сделать стоп это ворлд

572
01:03:53.010 --> 01:03:55.090
Михаил Непряхин: то есть э,

573
01:03:55.880 --> 01:03:57.310
Михаил Непряхин: остановить

574
01:03:57.430 --> 01:04:00.590
Михаил Непряхин: аа остановить выполнение, вообще всего

575
01:04:00.870 --> 01:04:02.020
Михаил Непряхин: и и

576
01:04:02.960 --> 01:04:07.720
Михаил Непряхин: привести ну Вот как бы очистить

577
01:04:08.110 --> 01:04:09.710
Михаил Непряхин: очистить кучу

578
01:04:10.330 --> 01:04:22.510
Михаил Непряхин: и есть Еще этапы Еще какие-то этапы но короче смысл в том что что-то можно делать параллельно но в горбочкой лекторе есть этап когда вот мы обязаны полностью остановить программу

579
01:04:22.650 --> 01:04:25.280
Михаил Непряхин: и такие синхронизированные

580
01:04:25.920 --> 01:04:43.010
Михаил Непряхин: однопоточно почистить память вот вот этот стоп двор, то есть он тоже максимально оптимально Сделан видите как бы Не вся Работа гарвардская лектора она происходит вот в синхронном режиме но тем Не Менее какая-то часть происходит Есть метрики

581
01:04:43.010 --> 01:04:50.920
Михаил Непряхин: Которые отслеживают Сколько. Ну. Там графаний можно сделать Сколько. Секунд Мы провели вот в этом стоп-золорде то Есть

582
01:04:50.920 --> 01:05:03.870
Михаил Непряхин: Сколько секунд Программа, вообще не. Работала мне соответственно чем. У вас больше Объектов куча чем. У вас больше гармочка лектор дольше работает Тем у вас больше будет сто долларов, и это как бы как такой замкнутый круг

583
01:05:03.950 --> 01:05:11.760
Михаил Непряхин: что чем больше Объектов тем больше нагрузка на карпочкой лектор то ли

584
01:05:11.830 --> 01:05:26.510
Михаил Непряхин: Поэтому и

585
01:05:26.630 --> 01:05:40.710
Михаил Непряхин: Вот и чаще всего конечно Там Программа, Она Не работает на Пределе своих возможностей Но если. Вдруг вам надо будет, Это Выжать то нужно будет э избегать локаций избегать

586
01:05:40.870 --> 01:05:41.910
Михаил Непряхин: указатели

587
01:05:44.970 --> 01:06:01.780
Михаил Непряхин: так какие же проблемы есть горбачев-ректор и в исполнении джаэля на голландии

588
01:06:01.780 --> 01:06:06.470
Михаил Непряхин: он имеет всего лишь одну настройку которая По Сути отвечает за То

589
01:06:06.920 --> 01:06:09.240
Михаил Непряхин: при заполнении

590
01:06:09.390 --> 01:06:13.990
Михаил Непряхин: в процентах какого объема памяти коробочка лектор начнет работать

591
01:06:15.090 --> 01:06:33.880
Михаил Непряхин: и из последних новостей вот в версии один двадцать Пять вы Сейчас которые актуально экспериментально добавили еще один бэк-энд для гарпочка лектора, То есть думаю стараются шас его Еще оптимизировать и Говорят о каких-то десятках процентов которые они тоже выжили

592
01:06:33.880 --> 01:06:42.510
Михаил Непряхин: то есть в Принципе в гоу очень и производство просматривается что что-то сделано лишь бы как-нибудь чтобы оно работало

593
01:06:42.510 --> 01:06:54.480
Михаил Непряхин: и Потом проходит время не ломая обратной совместимости что-то улучшается вот То же самое недавно с мамой было что-то они Там подтнили и постоянно постоянно планировщик тоже улучшают

594
01:06:55.250 --> 01:07:06.540
Михаил Непряхин: но дипломатично Сейчас гоу он на уровне раста то есть это самый быстрый планировщик от кооперативной и многозадачности это не какой-то примитивный иван, клуб. Там из

595
01:07:06.540 --> 01:07:22.080
Михаил Непряхин: тот наверное из шарпа Или из байдена который был Там пределан в конце ну когда уже язык, был сформирован его просто сбоку придерживали то же самое власти то есть голод единственный язык, который был изначально Продуман вот Так чтобы он

596
01:07:22.080 --> 01:07:35.610
Михаил Непряхин: очень эффективно Утилизировал все ядра равномерно при этом делу и был вот синхронным из Коробки то Есть Без всякого дополнительного синтезиса просто все работает синхрона тоже целый урок это Мы Посвятим

597
01:07:35.750 --> 01:07:38.770
Михаил Непряхин: разберемся досконально как это работает

598
01:07:40.130 --> 01:07:44.350
Михаил Непряхин: Так. Указатели значит Что Мы можем делать

599
01:07:46.830 --> 01:07:48.070
Михаил Непряхин: с Указателями

600
01:07:50.580 --> 01:07:53.590
Михаил Непряхин: а Во-первых значит

601
01:07:54.310 --> 01:08:00.520
Михаил Непряхин: если Вы видите тип со звездочкой это указать То любой тип перед которым видите Звездочку

602
01:08:00.870 --> 01:08:02.650
Михаил Непряхин: это указатель

603
01:08:05.000 --> 01:08:09.000
Михаил Непряхин: вот так. Вот это будет просто инт на стэке

604
01:08:09.380 --> 01:08:14.710
Михаил Непряхин: а вот так вот это будет указатель на стеке а инт будет

605
01:08:14.880 --> 01:08:18.200
Михаил Непряхин: куча и указатель будет Указывать на этот инт

606
01:08:18.890 --> 01:08:28.880
Михаил Непряхин: дефолт на Зервелью Указателя тоже нел. Мы только что смотрели что у функции зеровой винил Ну потому что функция это указатель под капотом

607
01:08:29.779 --> 01:08:46.240
Михаил Непряхин: а указатель зеровелью имеет нил это тоже небольшой Тюнинг, По Сравнению с плюсами силь когда под указателем может быть Мусор здесь мусора Не может быть здесь э будет либо ним либо какое-то Инициатизированное значение

608
01:08:47.880 --> 01:08:48.760
Михаил Непряхин: и и

609
01:08:49.779 --> 01:08:52.189
Михаил Непряхин: еще смотрите какая особенность Интересная

610
01:08:53.060 --> 01:08:54.140
Михаил Непряхин: индексия

611
01:08:55.020 --> 01:08:58.649
Михаил Непряхин: аа когда я вам вот показывал про функции

612
01:08:59.330 --> 01:09:01.330
Михаил Непряхин: вот Мы объявляем функцию

613
01:09:02.000 --> 01:09:03.890
Михаил Непряхин: смотрите здесь Нет звездочки

614
01:09:04.109 --> 01:09:06.550
Михаил Непряхин: То, есть как бы это

615
01:09:07.260 --> 01:09:12.069
Михаил Непряхин: просто, тип указывается, и все ну точно так же могли Бы вот фанку указать

616
01:09:13.390 --> 01:09:14.460
Михаил Непряхин: А

617
01:09:17.600 --> 01:09:20.550
Михаил Непряхин: просто указали Бы Панк

618
01:09:21.160 --> 01:09:27.069
Михаил Непряхин: и вот здесь мы звездочки Не Видим хотя на самом деле Она

619
01:09:27.200 --> 01:09:31.859
Михаил Непряхин: ну есть потому что функция это указатель в памяти

620
01:09:32.470 --> 01:09:40.310
Михаил Непряхин: и таких типов еще несколько есть об этом тоже тут поговорим когда вроде бы и смотришь вроде бы Не указатель на самом деле указатель

621
01:09:40.540 --> 01:09:45.240
Михаил Непряхин: но вгу как бы важно понимать вот мы Сейчас работаем с указателем Или нес указателем потому Что

622
01:09:45.540 --> 01:09:50.290
Михаил Непряхин: если у нас есть указатель и значит Мы его передаем в любое место

623
01:09:50.979 --> 01:09:59.250
Михаил Непряхин: и если Еще кто то владеет этим указателем он его меняет из другого из другого какого то места а у нас значение меняется

624
01:09:59.390 --> 01:10:08.410
Михаил Непряхин: Поэтому как бы с указателями надо ну Во-первых надо проверять не ли он потому что. Он может быть не вам

625
01:10:09.070 --> 01:10:20.410
Михаил Непряхин: и надо понимать что. Тоже могут быть сайт-эффекты если мы получили указатель а им, Еще кто-то владеет то тот кто может его поменять и мы получим сайт. Дефект

626
01:10:22.570 --> 01:10:29.660
Михаил Непряхин: а как взять указатель от чего угодно значит мы Объявляем что угодно например, число

627
01:10:29.900 --> 01:10:32.220
Михаил Непряхин: и синтаксис взятия указателя

628
01:10:32.610 --> 01:10:34.490
Михаил Непряхин: это коммерсантъ

629
01:10:35.350 --> 01:10:42.350
Михаил Непряхин: и у нас по Сути есть всего для работы с указателем вот два варианта синдроксиса

630
01:10:42.760 --> 01:10:47.760
Михаил Непряхин: это звездочка по которой? Мы ну, которая участвует в Типе

631
01:10:48.300 --> 01:10:51.000
Михаил Непряхин: и еще она участвует в операции Разименования

632
01:10:51.800 --> 01:10:54.600
Михаил Непряхин: то есть как бы у звездочки Два назначения

633
01:10:54.990 --> 01:10:59.000
Михаил Непряхин: а у персонажа одно это просто взять указательно что угодно

634
01:10:59.440 --> 01:11:02.960
Михаил Непряхин: значит вот здесь мы берем указатель на икс

635
01:11:03.610 --> 01:11:09.380
Михаил Непряхин: и теперь, в п у нас адрес переменной где Лежит икс

636
01:11:10.420 --> 01:11:19.140
Михаил Непряхин: и вот это тот Случай когда видите у нас иксны стейки ап будет Указывать собственно тоже на стек то есть, они рядышком будут на стыке Лежать

637
01:11:20.190 --> 01:11:24.660
Михаил Непряхин: а если Мы хотим, то есть, вот там она Сейчас внутри п

638
01:11:26.650 --> 01:11:28.760
Михаил Непряхин: указатель на этот инт

639
01:11:31.210 --> 01:11:44.780
Михаил Непряхин: Если Мы хотим, эээ достать Что Находится под указателем Мы Используем Звездочку для разименования Разименование указателя это значит Что Мы идем По адресу

640
01:11:44.960 --> 01:11:51.910
Михаил Непряхин: Которые есть в Указателя и Берем То Что Там Находится и Помещаем

641
01:11:52.080 --> 01:11:53.610
Михаил Непряхин: Это в переменную

642
01:11:55.540 --> 01:12:00.640
Михаил Непряхин: если Мы посмотрим вот просто Что Там под указателем вот если, Мы сделаем при нтв

643
01:12:01.230 --> 01:12:06.060
Михаил Непряхин: кто Там Будет вот это вот это адрес в памяти

644
01:12:06.350 --> 01:12:09.260
Михаил Непряхин: и в Принципе даже Там посмотрев

645
01:12:10.530 --> 01:12:26.150
Михаил Непряхин: адреса Там кто-то может даже понять в какой Области. Памяти Находится просто по Числам но вот Это кто на низком уровне хорошо. Разбирается то есть Понятно где примерно в каком Месте куча это Лежит, но это как бы так то есть по Сути это просто

646
01:12:26.330 --> 01:12:27.490
Михаил Непряхин: число

647
01:12:27.740 --> 01:12:34.570
Михаил Непряхин: адрес клетки где находится в памяти наше значение оно соответственно уникальное

648
01:12:35.640 --> 01:12:37.490
Михаил Непряхин: и и

649
01:12:37.780 --> 01:12:40.380
Михаил Непряхин: видите если Мы разименовываем

650
01:12:40.510 --> 01:12:43.420
Михаил Непряхин: То Мы получаем вот это значение Которое Там Лежит

651
01:12:45.230 --> 01:12:47.380
Михаил Непряхин: Так Давайте Нарисуем

652
01:13:03.930 --> 01:13:07.820
Михаил Непряхин: так значит есть У нас допустим

653
01:13:09.030 --> 01:13:10.750
Михаил Непряхин: опять. Же Давайте синдром!

654
01:13:12.990 --> 01:13:15.950
Михаил Непряхин: А есть инт антон Лежит на а стекло

655
01:13:17.810 --> 01:13:18.480
Михаил Непряхин: а

656
01:13:21.200 --> 01:13:24.730
Михаил Непряхин: Мы Берем на него указатель

657
01:13:24.870 --> 01:13:26.750
Михаил Непряхин: Через Э

658
01:13:27.240 --> 01:13:28.560
Михаил Непряхин: Через интернет

659
01:13:35.490 --> 01:13:36.980
Михаил Непряхин: и этот

660
01:13:37.150 --> 01:13:41.230
Михаил Непряхин: и здесь у нас Будет то есть если. Здесь у нас реально Находится число

661
01:13:41.380 --> 01:13:43.420
Михаил Непряхин: сорок два

662
01:13:43.610 --> 01:13:46.050
Михаил Непряхин: то вот здесь у нас будет адрес

663
01:13:49.340 --> 01:13:52.280
Михаил Непряхин: который указывает вот сюда вот

664
01:13:52.690 --> 01:13:59.570
Михаил Непряхин: видите как бы куча Не, участвует мы указываем на собственно говоря на тот же самый стек

665
01:13:59.820 --> 01:14:04.480
Михаил Непряхин: но часто в общем-то и мы можем Указывать в кучу то есть этот Же самый ин

666
01:14:04.630 --> 01:14:16.350
Михаил Непряхин: он может и здесь провоцироваться. И спокойненько мы тоже, можем взять от него адрес и вот этот наш адрес будет указывать и в кучу и сюда сюда может указывать

667
01:14:17.160 --> 01:14:23.730
Михаил Непряхин: а Если, Мы Хотим? Посмотреть то Есть Вот Мы работаем с этим Допустим Их Мы взяли

668
01:14:23.940 --> 01:14:28.300
Михаил Непряхин: Вот Мы Сексом, работаем то Есть викс и викси у нас Лежит адрес

669
01:14:29.500 --> 01:14:39.950
Михаил Непряхин: если. Мы с ним будем просто Работать как, есть то мы получим ну, по сути просто адрес мы с адресом ничего не можем сделать чтобы получить значение что, Там Внутри

670
01:14:40.120 --> 01:14:43.500
Михаил Непряхин: нужно добавить звездочку киксу

671
01:14:43.730 --> 01:14:55.790
Михаил Непряхин: и вот эта звездочка она означает, что, Мы перейдем по этому адресу и уже возьмем это значение и вот это уже будет звездочка икс это уже будет вот это значение

672
01:14:56.560 --> 01:15:05.870
Михаил Непряхин: если мы хотим? Поменять то Мы Тоже. Просто пишем Звездочку Допустим сорок Два хотим? Заменить на восемь

673
01:15:06.530 --> 01:15:14.300
Михаил Непряхин: Мы Тоже. Говорим что Звездочка икс все равно восемь и Вот тогда мы проходим по указателю и меняется Сорок. Два на восемь,

674
01:15:15.280 --> 01:15:16.690
Михаил Непряхин: из Интересного

675
01:15:16.870 --> 01:15:19.810
Михаил Непряхин: мы можем указать взять несколько Раз

676
01:15:21.140 --> 01:15:23.010
Михаил Непряхин: Вот допустим взяли мэм.

677
01:15:32.530 --> 01:15:34.930
Михаил Непряхин: Так значит Число равно восемь

678
01:15:36.320 --> 01:15:39.160
Михаил Непряхин: Мы хотим, взять указатель но типа Назовем

679
01:15:39.610 --> 01:15:41.980
Михаил Непряхин: указатель Мы Пишем коммерсантъ

680
01:15:42.520 --> 01:15:43.680
Михаил Непряхин: от ай

681
01:15:44.370 --> 01:15:46.490
Михаил Непряхин: полина тут конечно неудачно Получилось

682
01:15:46.920 --> 01:15:48.310
Михаил Непряхин: эти сорок Два

683
01:15:48.570 --> 01:15:52.200
Михаил Непряхин: громом персанта тай в п у нас указатель

684
01:15:53.220 --> 01:15:54.290
Михаил Непряхин: на и

685
01:15:55.070 --> 01:16:00.630
Михаил Непряхин: если Мы хотим, достать сорок Два то Мы должны сделать вот Так вот а у звезды шкап

686
01:16:01.540 --> 01:16:09.110
Михаил Непряхин: мы можем взять еще Раз, указатель от указателя у нас в пэ так уже указатель мы еще Раз, делаем

687
01:16:09.540 --> 01:16:11.470
Михаил Непряхин: а коммерсант отп

688
01:16:12.010 --> 01:16:14.360
Михаил Непряхин: и у нас вот в этом

689
01:16:14.920 --> 01:16:16.440
Михаил Непряхин: а в Этой переменной

690
01:16:16.690 --> 01:16:20.440
Михаил Непряхин: получается, указатель вот на этот указатель

691
01:16:21.080 --> 01:16:23.590
Михаил Непряхин: а этот указатель он указывает вот сюда

692
01:16:24.060 --> 01:16:29.020
Михаил Непряхин: и если, мы сделаем один Раз звездочка пп то мы попадем сюда

693
01:16:29.190 --> 01:16:31.200
Михаил Непряхин: и у нас здесь будет указатель

694
01:16:31.430 --> 01:16:36.980
Михаил Непряхин: а если, мы хотим, прямо вот это вот получить то Мы должны сделать два раза звездочка пп

695
01:16:37.740 --> 01:16:42.890
Михаил Непряхин: Мы можем отп еще Раз взять Указателей тогда три звездочки и

696
01:16:43.120 --> 01:16:55.480
Михаил Непряхин: на Совбезах слава богу перестали Это Спрашивать Но такая Дикая ситуация, тоже бывает что вот много много звездочек показывает что У тебя будет Он короче Одна Звездочка

697
01:16:55.860 --> 01:16:57.570
Михаил Непряхин: это один прыжок

698
01:16:57.740 --> 01:16:59.400
Михаил Непряхин: По указателю

699
01:17:00.120 --> 01:17:14.470
Михаил Непряхин: если Там будет если Вы три звездочки нарисуете а Там Реально указать Или Не будет То Ну, просто Ошибка Будет по-моему даже по-моему Эстетически Это проверится по-моему Программа, даже Не Скомпелируется

700
01:17:15.960 --> 01:17:19.710
Михаил Непряхин: вот значит Берем викс Помещаем Сорок Два

701
01:17:20.660 --> 01:17:24.130
Михаил Непряхин: тело имперсанта Икса в Ай у нас указатель

702
01:17:24.730 --> 01:17:38.320
Михаил Непряхин: От? Этого Указателя Еще Раз, Берем указатель в джей указательно. И От? Этого джей Еще Раз, Берем указатель и в кей Сейчас указательно. Джи а в джи указатель Навелью

703
01:17:39.290 --> 01:17:43.300
Михаил Непряхин: и чтобы если Мы посмотрим что в кей

704
01:17:43.610 --> 01:17:44.870
Михаил Непряхин: в киеве указатель

705
01:17:45.040 --> 01:17:47.610
Михаил Непряхин: что разименовываем к ней

706
01:17:47.720 --> 01:17:49.280
Михаил Непряхин: Там опять, указатель

707
01:17:49.400 --> 01:17:57.250
Михаил Непряхин: два раза разминовываем кей То есть два прыжка совершаем по указателю Там опять, указатель три раза

708
01:17:57.430 --> 01:18:01.900
Михаил Непряхин: прыгаем по указателю одна звездочка Один прыжок По указателю

709
01:18:02.380 --> 01:18:07.450
Михаил Непряхин: и наконец таки добираемся до того самого значения Внутри

710
01:18:07.990 --> 01:18:10.530
Михаил Непряхин: Если, Мы его Сейчас хотим, поменять

711
01:18:10.990 --> 01:18:13.300
Михаил Непряхин: на что-то другое

712
01:18:13.480 --> 01:18:15.000
Михаил Непряхин: то мы делаем вот так вот

713
01:18:19.090 --> 01:18:23.130
Михаил Непряхин: вот таким образом мы вот Это, значение поменяем на восемь

714
01:18:24.190 --> 01:18:29.870
Михаил Непряхин: а так он даже не скомпелируется просто он Скажет типа что да Некуда прыгать. Там

715
01:18:30.300 --> 01:18:35.500
Михаил Непряхин: то Есть Он тут Эстетически может проверить Что Это была ошибка на Этапе компиляции должны сконцентрироваться

716
01:18:36.370 --> 01:18:40.480
Михаил Непряхин: и соответственно четыре может быть То есть можем

717
01:18:41.210 --> 01:18:45.530
Михаил Непряхин: Еще взять От Этого маккея

718
01:18:46.510 --> 01:18:56.440
Михаил Непряхин: Еще Один указатель и тогда. Чтобы Разименовать витя три раза он даже показывал что Нет Не дойдем еще четыре. Звездочки

719
01:18:56.560 --> 01:19:04.400
Михаил Непряхин: То есть короче просто, читайте Звездочку как прыжок По указателю отпираться называться. Разименование

720
01:19:12.430 --> 01:19:16.990
Михаил Непряхин: из-за чего часто бывают этички памяти утечки памяти это

721
01:19:17.360 --> 01:19:25.960
Михаил Непряхин: просто, вот Мы не освобождаем память но это в гоу редко бывает то есть это прям тоже об этом поговорим отдельно

722
01:19:26.820 --> 01:19:28.340
Михаил Непряхин: это редкое явление

723
01:19:28.980 --> 01:19:44.020
Михаил Непряхин: напрофилированное профилирование сразу видно под что память течет довольно легко профилировать в Голову. Такие вещи на практике бывают Использования звезд как. Или только Для советов да практики не бывает Ну в продакшен коде у вас такого никогда не Будет

724
01:19:44.360 --> 01:19:45.380
Михаил Непряхин: просто,

725
01:19:45.760 --> 01:19:58.430
Михаил Непряхин: так как. Эта синтетика да ну то есть как бы так Нормально Люди не Делают то как бы Средний эстетический программист на гол, он вообще не понимает смысл звездочки что Это такое

726
01:19:58.800 --> 01:20:03.500
Михаил Непряхин: а Звездочка Она видите Она в Трех местах принимает участие

727
01:20:03.690 --> 01:20:06.670
Михаил Непряхин: в типе когда вы

728
01:20:07.450 --> 01:20:14.210
Михаил Непряхин: используйте вот Этот, тип нравственный указатель указатель на инд Так и читается указательно Ин

729
01:20:14.810 --> 01:20:24.560
Михаил Непряхин: второе место, Звездочка используется когда вы Хотите, прочитать вот как здесь Мы читаем Что Там под звездочкой кей один раз прыгаем По указателю

730
01:20:24.930 --> 01:20:36.270
Михаил Непряхин: и третий вариант Использования когда Мы хотим, заменить изменить то Есть сперва допрыгать до этого места а потом То место поменять Что Там Находится

731
01:20:36.840 --> 01:20:54.770
Михаил Непряхин: вот Звездочка Она вот такая сложная как Бы во вторых местах Используют Синтезисе с коммерсандом все просто амперсант просто берет указатель на чего угодно вот что Там будет, в Этой переменной если Мы сделаем персона. Мы возьмем указатель на него

732
01:20:55.640 --> 01:20:57.160
Михаил Непряхин: вот Поэтому

733
01:20:57.270 --> 01:20:59.680
Михаил Непряхин: с коммерсантом все проще

734
01:21:00.860 --> 01:21:10.880
Михаил Непряхин: ну и вообще как бы так как в жизни с этим не так много приходится работать то на собеседник Тут Можно реально потеряться потому что что-нибудь такое вот Спросят и

735
01:21:11.100 --> 01:21:13.230
Михаил Непряхин: важно понимать эти прыжки

736
01:21:14.430 --> 01:21:24.360
Михаил Непряхин: Так а зачем эта матрешка с указателем в чем смысл Проигрывать этим просто показываю как это работает смысла особо Нет но работает вот Так

737
01:21:25.340 --> 01:21:36.780
Михаил Непряхин: вдруг Промежуточный указатель Будет Или если попытаться, взять указатель на постоянный указатель вот Не упойнт Ресепшен потому что мы Не Можем Разменовать ним указатель

738
01:21:39.440 --> 01:21:44.190
Михаил Непряхин: но в этом Случае если вы тут, где-то Не упрям укажете

739
01:21:44.300 --> 01:21:47.510
Михаил Непряхин: он скорее всего Не Скомпелируется даже

740
01:21:48.990 --> 01:22:06.160
Михаил Непряхин: я надеюсь что это только для приколов да это только для приколов на собеседниках и плюс хороший пример чтобы понять как это черт побери работает потому, что без вот без этого если вот я бы вам это не показал и круче Не доходит что звездочка это один прыжок по указателю

741
01:22:06.280 --> 01:22:12.970
Михаил Непряхин: что-то Разве что такое разименование да кто-то взять указатель Перейти по нему, посмотреть что там

742
01:22:13.390 --> 01:22:16.030
Михаил Непряхин: или заменить то что там было

743
01:22:16.390 --> 01:22:19.240
Михаил Непряхин: а локации в бою будет разбирать

744
01:22:19.460 --> 01:22:25.880
Михаил Непряхин: провокацию ну вообще как бы смотрите считайте так. Видите указатель

745
01:22:26.000 --> 01:22:36.230
Михаил Непряхин: считайте что скорее всего свободная локация то есть, девяносто девять процентов вы будете Иметь дело с локацией Поэтому если не хотите. Локации и Не используйте указатели

746
01:22:36.560 --> 01:22:42.490
Михаил Непряхин: а ну почти Всегда, Можно написать программу без указателей то есть видите как бы

747
01:22:42.770 --> 01:22:45.690
Михаил Непряхин: если вы видите перед Собой указатель

748
01:22:45.810 --> 01:22:49.930
Михаил Непряхин: во Первых вы Не, можете сказать он у вас уникальный или Нет

749
01:22:50.880 --> 01:23:02.560
Михаил Непряхин: потому что ну кто вам даст гарантию вот у вас есть указатель икс а вдруг еще кто-то туда. Указывает вы Сейчас понадеялись на это значение Которое Там Оно взялось,

750
01:23:04.040 --> 01:23:12.840
Михаил Непряхин: первый момент Второй момент он может быть нил а вдруг нил. Надо проверять или вы уверены что не ну не упомянутый рецепт Поэтому часто и бывает

751
01:23:13.450 --> 01:23:20.440
Михаил Непряхин: вот третий момент авокации Видите указатель почти сто процентов. Его Провокация ну как вы так считаете

752
01:23:20.600 --> 01:23:24.140
Михаил Непряхин: если возвращаете указатели. Функции сто процентов. Локаций

753
01:23:25.420 --> 01:23:27.590
Михаил Непряхин: вот и

754
01:23:28.150 --> 01:23:32.860
Михаил Непряхин: с указателем Просто сложнее работать потому Что

755
01:23:33.840 --> 01:23:37.740
Михаил Непряхин: ну здесь вот надо понимать да надо понимать Что такое указатель

756
01:23:37.920 --> 01:23:42.050
Михаил Непряхин: как Вы если Не понимаете то прямо-то Будет просто как непонятно что происходит

757
01:23:42.410 --> 01:23:58.020
Михаил Непряхин: а если у вас вот значение ну все просто у вас значение здесь и Сейчас никто его поменять не может а ну немым быть не может оно точно в зеровелью если это Интона ноль в Крайнем случае то есть никакой паники не будет

758
01:23:58.420 --> 01:24:11.570
Михаил Непряхин: и его никто не может поменять извне то есть если у вас перед Вами вэлью То, вот оно вот у вас оно скопировано откуда То, никто не может его там где то взять и поменять а у вас оно взяло и Изменилось

759
01:24:12.020 --> 01:24:16.890
Михаил Непряхин: и Поэтому вот как бы Тоже указатель он изначально был как бы как инструмент

760
01:24:17.140 --> 01:24:20.270
Михаил Непряхин: но так как люди приходят с других языков

761
01:24:21.000 --> 01:24:36.380
Михаил Непряхин: а там они привыкли работать указателями ну потому что вот это вот мужик Пирум память Там Это Же дорого хотя на самом деле Нет вот и Поэтому Повсеместно когда объявляется какая-нибудь структура Она прямо, по дефолту делается указателем например,

762
01:24:37.280 --> 01:24:38.450
Михаил Непряхин: здесь, вот юзер

763
01:24:39.080 --> 01:24:48.490
Михаил Непряхин: вот видите вот так вот его создать вот это вот по Значению да вот можем взять от него указатель и вот в п уже будет указатель на него на юзера

764
01:24:48.900 --> 01:24:55.660
Михаил Непряхин: но кошники почти все вот пишут вот так вот Всегда то, есть объявляется Ммм

765
01:24:55.990 --> 01:25:00.330
Михаил Непряхин: ну структура сразу инициируется Значениями

766
01:25:00.690 --> 01:25:06.410
Михаил Непряхин: и берется на нее указатель и в п у нас уже указатель

767
01:25:06.940 --> 01:25:09.460
Михаил Непряхин: и так работают все новички

768
01:25:09.700 --> 01:25:18.670
Михаил Непряхин: потому что Там дальше Мы будем разбираться Почему иногда вот указатель обязательно требуется например, когда вы Там с энтрофейцами имеете дело

769
01:25:19.400 --> 01:25:21.500
Михаил Непряхин: и у вас Есть

770
01:25:21.790 --> 01:25:23.100
Михаил Непряхин: указательный

771
01:25:23.300 --> 01:25:26.500
Михаил Непряхин: ли север У Метода об Этом тоже Поговорим

772
01:25:26.990 --> 01:25:28.060
Михаил Непряхин: и а

773
01:25:28.320 --> 01:25:37.670
Михаил Непряхин: там обязательно надо Передавать указатель и Поэтому на всякий Случай чтобы этих ошибок не было берут Всегда просто и берут указатель

774
01:25:38.000 --> 01:25:40.510
Михаил Непряхин: есть ли перед Вами код

775
01:25:40.710 --> 01:25:44.880
Михаил Непряхин: который вот прям виде Сигнатуры и там

776
01:25:45.060 --> 01:25:47.650
Михаил Непряхин: Структуры Передаются по значению

777
01:25:48.240 --> 01:25:56.980
Михаил Непряхин: это уже сигнал того что человек думающий он понимает как это работает он опытный

778
01:25:57.180 --> 01:26:12.140
Михаил Непряхин: короче говоря это такой уже флажок уже хороший знак Что человек тут разобрался он понимает как это работает и так Далее Поэтому вот как бы у меня задача чтобы вы такими людьми Стали думающими которые понимают зачем Нужен указатель

779
01:26:13.180 --> 01:26:16.700
Михаил Непряхин: Где он Нужен Где Можно Без Него обойтись

780
01:26:17.270 --> 01:26:18.900
Михаил Непряхин: и вот все такое

781
01:26:19.390 --> 01:26:29.750
Михаил Непряхин: еще есть устаревший индекс Ну как как бы вы его можете стоять в библиотеках где нибудь и но Так никто в современном гой не пишет то есть ин ю

782
01:26:29.940 --> 01:26:34.510
Михаил Непряхин: берет указатель на структуру то Есть просто возвращается

783
01:26:34.630 --> 01:26:39.560
Михаил Непряхин: принимается Обычный, Тип возвращается указатель то Есть вот Это вот

784
01:26:39.730 --> 01:26:42.020
Михаил Непряхин: то же самое что

785
01:26:45.330 --> 01:26:46.110
Михаил Непряхин: а и

786
01:26:48.410 --> 01:26:49.160
Михаил Непряхин: шам

787
01:26:56.450 --> 01:26:58.150
Михаил Непряхин: вот то же самое что, вот это вот

788
01:26:58.530 --> 01:27:09.980
Михаил Непряхин: вот это одно, и то же то есть это как бы типа сахар вот над этим но народ полюбил. Вот этот коммерсант и в Принципе как бы это классическое Создание структуры в голландии

789
01:27:10.850 --> 01:27:12.080
Михаил Непряхин: По указателю

790
01:27:17.730 --> 01:27:20.520
Михаил Непряхин: чем, Отличается нацист пойнтер от обыкновенного указателя

791
01:27:20.800 --> 01:27:27.560
Михаил Непряхин: Но ван Цифр Ансель поинтер это то Что вот внутри таких Структур как

792
01:27:27.870 --> 01:27:30.930
Михаил Непряхин: то Есть Ансамбль пойнтер он

793
01:27:31.360 --> 01:27:35.760
Михаил Непряхин: Давайте так смотрите несмотря на То что указатель Это

794
01:27:36.160 --> 01:27:41.910
Михаил Непряхин: довольно Опасная структура опасный тип Ну почему опасный потому что Может быть нил

795
01:27:42.150 --> 01:27:42.990
Михаил Непряхин: да

796
01:27:43.680 --> 01:27:47.970
Михаил Непряхин: Но вот когда вы Работаете с обычным указателем

797
01:27:48.140 --> 01:27:50.270
Михаил Непряхин: ну вот как Здесь да

798
01:27:50.460 --> 01:27:52.130
Михаил Непряхин: У нас Есть гарантия

799
01:27:52.290 --> 01:27:53.300
Михаил Непряхин: Что Что

800
01:27:53.990 --> 01:27:54.890
Михаил Непряхин: п

801
01:27:55.390 --> 01:28:04.720
Михаил Непряхин: обязательно Инициатива как Минимум нилом То Есть Она не может быть каким-то мусором или

802
01:28:04.830 --> 01:28:06.950
Михаил Непряхин: неинициализированной памятью

803
01:28:07.140 --> 01:28:12.430
Михаил Непряхин: То есть там к ним Как минимум либо ним либо какое То значение

804
01:28:13.170 --> 01:28:20.460
Михаил Непряхин: ан сейф Поинтер Это Ну как видно из Названия ансев Это небезопасный указатель

805
01:28:20.660 --> 01:28:22.300
Михаил Непряхин: без Гарантий

806
01:28:22.490 --> 01:28:26.320
Михаил Непряхин: То Есть там может быть что угодно там может быть мусор

807
01:28:27.360 --> 01:28:35.020
Михаил Непряхин: То есть. Если вы используете обычный указатель там не может быть мусора и Не может быть неопределенного поведения как все или плюсах

808
01:28:35.320 --> 01:28:52.180
Михаил Непряхин: когда вы используете и

809
01:28:52.320 --> 01:28:54.270
Михаил Непряхин: ну вернее нет сейф По интернету

810
01:28:54.530 --> 01:28:55.410
Михаил Непряхин: а

811
01:28:55.640 --> 01:29:11.050
Михаил Непряхин: Не помню о сейф ненсейф там в структуре по-моему просто поинтер короче говоря это Структура которая нужна для низкого уровня оптимизации используется в библиотеках и Мы в Обычной Жизни с Ним Дела Никогда не имеем Это указатель без Гарантий Там может быть мусор

812
01:29:11.740 --> 01:29:19.050
Михаил Непряхин: в однойной книжке советовали не пользоваться. Указателями если Разменивать статуну меньше Я вот проверял Я тоже проверял вот Я вам сказал что

813
01:29:19.760 --> 01:29:31.530
Михаил Непряхин: и копирования быстрее безопаснее это факт то есть если у вас меньше одного мегабайта не придумывайте и

814
01:29:31.850 --> 01:29:46.020
Михаил Непряхин: в фигня, это все Прям можете спокойненько Передавать по значению функцию Да это скопируется скопируется офигеть один мегабайт но это само Будет Быстрее Чем, если вы Будете Создавать указатель

815
01:29:46.070 --> 01:29:57.690
Михаил Непряхин: на этот Один. Мегабайт и Передавать указатель из Функций функцию потому что потом ну во Первых на локации вы теряете это долго и на Сборке мусора вы теряете

816
01:29:57.780 --> 01:30:15.640
Михаил Непряхин: вот так вот это факт есть линтер который типа ругается когда и

817
01:30:16.150 --> 01:30:17.680
Михаил Непряхин: важно понимать

818
01:30:17.870 --> 01:30:21.790
Михаил Непряхин: что до Мегабайта не паритесь передавать по значению

819
01:30:22.070 --> 01:30:27.770
Михаил Непряхин: пустая структура Метров интереса Нет пустая структура Она ничего не видит

820
01:30:28.020 --> 01:30:36.340
Михаил Непряхин: фронтами потому Что Она указывает на текст в Область памяти которая ноль вот про пустую структуру тоже поговорим где она применяется

821
01:30:37.810 --> 01:30:41.170
Михаил Непряхин: так и Что Что здесь еще не рассказал

822
01:30:41.390 --> 01:30:46.800
Михаил Непряхин: так передача функцию вот смотрите значит у нас есть да есть у нас функция

823
01:30:51.910 --> 01:30:55.590
Михаил Непряхин: функция принимает указатель на тинт

824
01:30:55.700 --> 01:30:57.900
Михаил Непряхин: и возвращают тоже указательный ин

825
01:31:00.050 --> 01:31:03.020
Михаил Непряхин: так мы здесь разименовываем его

826
01:31:03.960 --> 01:31:10.460
Михаил Непряхин: и ну то есть печатаем Это значение и опять, же возвращаем его же короче

827
01:31:11.950 --> 01:31:16.950
Михаил Непряхин: аа говорим значит Что их с равен Тринадцати и по указателю передаем в эту функцию

828
01:31:17.890 --> 01:31:18.880
Михаил Непряхин: и и

829
01:31:24.940 --> 01:31:26.670
Михаил Непряхин: так Мы здесь проверяем на нил

830
01:31:27.780 --> 01:31:33.440
Михаил Непряхин: ну это короче я тут, писал про то что вот значит мессадж какой

831
01:31:33.860 --> 01:31:35.580
Михаил Непряхин: если вы видите

832
01:31:35.760 --> 01:31:38.190
Михаил Непряхин: вот несмотря даже в тему, функции.

833
01:31:38.480 --> 01:31:40.630
Михаил Непряхин: Что. Функция возвращает указатель

834
01:31:41.280 --> 01:31:44.090
Михаил Непряхин: это значит что. Там может быть нил

835
01:31:44.240 --> 01:31:46.560
Михаил Непряхин: вот просто имеете дело с указателем

836
01:31:47.300 --> 01:31:49.820
Михаил Непряхин: вы должны понимать что может прийти нил

837
01:31:50.390 --> 01:31:53.970
Михаил Непряхин: и часто на это забивают

838
01:31:54.460 --> 01:31:57.540
Михаил Непряхин: и Поэтому и случается неуполненный ресепшн

839
01:31:58.150 --> 01:32:02.510
Михаил Непряхин: Поэтому и

840
01:32:03.410 --> 01:32:08.670
Михаил Непряхин: каждый Раз гошень вы будете проверять на него вы что-нибудь и каждый раз проявляет на него уж так никто не делает

841
01:32:09.130 --> 01:32:10.730
Михаил Непряхин: ну вот если бы

842
01:32:11.120 --> 01:32:14.210
Михаил Непряхин: эта функция Возвращала бы инд

843
01:32:15.100 --> 01:32:23.400
Михаил Непряхин: То вам Это действие не нужно То есть как бы если вы работаете не с указателями а просто со значениями

844
01:32:23.940 --> 01:32:27.930
Михаил Непряхин: Вы исключаете вас ошибок Не Упойнт ресепшен

845
01:32:28.240 --> 01:32:37.350
Михаил Непряхин: Вы Можете. Официально Лениться и Не писать эту проверку на Нее потому что она Не нужна Там все равно зарабатываю никакой паники не будет

846
01:32:37.560 --> 01:32:39.400
Михаил Непряхин: и это

847
01:32:39.720 --> 01:32:40.710
Михаил Непряхин: хорошо.

848
01:32:41.240 --> 01:32:43.180
Михаил Непряхин: Значит это первый момент

849
01:32:44.560 --> 01:32:46.060
Михаил Непряхин: и и

850
01:32:47.160 --> 01:32:53.790
Михаил Непряхин: вот здесь, вот сатну вот да если, вы здесь разменуете указатель и не проверили что он

851
01:32:54.120 --> 01:32:57.940
Михаил Непряхин: даниил. То будет здесь ошибка разименования

852
01:32:59.190 --> 01:33:02.160
Михаил Непряхин: и когда вы

853
01:33:02.580 --> 01:33:09.690
Михаил Непряхин: видите функцию ну а может быть длинная да какая то, и вы видите что вам приходит указатель

854
01:33:10.210 --> 01:33:14.370
Михаил Непряхин: а по-хорошему вот вы его должны здесь проверить

855
01:33:19.630 --> 01:33:22.760
Михаил Непряхин: вы его должны проверить потому, что

856
01:33:22.990 --> 01:33:33.000
Михаил Непряхин: кто вам может гарантировать что там ни нил, там может быть нил, если, там будет ним вот здесь при его разименовании вы получите неупланетный рецепт

857
01:33:33.140 --> 01:33:36.490
Михаил Непряхин: то есть вот если вы не будете его разменовывать

858
01:33:36.600 --> 01:33:43.830
Михаил Непряхин: то ну. Все Окей как бы ошибка происходит в момент разименования ну. То есть Что происходит

859
01:33:44.510 --> 01:33:47.130
Михаил Непряхин: а вы говорите значит идим

860
01:33:47.640 --> 01:33:50.140
Михаил Непряхин: а я знаю это указатель

861
01:33:50.250 --> 01:33:52.860
Михаил Непряхин: сходи по нему разминай

862
01:33:53.220 --> 01:33:58.750
Михаил Непряхин: и дай мне то Что Там Находится под ним логушка пытается это сделать

863
01:33:59.210 --> 01:34:13.510
Михаил Непряхин: и Нет никакой проверки вронтами То, Есть вот вот вот у вас такая ситуация, Мы Эстетически это проверить Не, можем это происходит в ронтайме пока Мы не сходим по Нему и не проверим что Там

864
01:34:13.780 --> 01:34:21.750
Михаил Непряхин: Мы и

865
01:34:22.780 --> 01:34:27.960
Михаил Непряхин: а да проблема не то что ничего Не отменил, Мы получаем здесь ошибку опять, же

866
01:34:28.700 --> 01:34:35.040
Михаил Непряхин: власти это исправили и власти такой ситуации быть Не может то есть, вот как бы раст он вот на

867
01:34:35.250 --> 01:34:38.990
Михаил Непряхин: указателей Дал больше Гарантий но Какой ценой

868
01:34:39.630 --> 01:34:49.650
Михаил Непряхин: катастрофической ценой Там вообще невозможно ничего быстро, написать Там скованно руками и ногами этим бором чакером Поэтому как бы вот в Голову. Здесь как бы Золотая середина

869
01:34:49.700 --> 01:35:01.090
Михаил Непряхин: с Указателями, Что это указатель с Гарантиями Что Не может быть неопределенного поведения То есть вы ну как бы гол и язык безопасный вы Не можете

870
01:35:01.090 --> 01:35:12.420
Михаил Непряхин: и из-за указателя Там и

871
01:35:12.810 --> 01:35:19.720
Михаил Непряхин: а но видите мы платим Этой ценой тем что мы либо должны проверять на ним пойнтер

872
01:35:20.230 --> 01:35:29.690
Михаил Непряхин: а ну вот вот Эту проверку Делать, либо иногда ловить паники если, Мы это Не делаем Но если, Вы просто Не Используете указатели а это Возможно,

873
01:35:30.000 --> 01:35:44.430
Михаил Непряхин: То У вас исключается этот класс ошибок Вы Всегда можете ну вот здесь взять указатель если, возвращается кказатель вы Всегда, понимаете Что Там либо ноль либо Что то

874
01:35:45.010 --> 01:35:50.970
Михаил Непряхин: этот ноль естественно. Мы можем напечатать можем им воспользоваться. Это ведь значение мы только снимом не можем работать

875
01:35:51.250 --> 01:35:52.930
Михаил Непряхин: и все у нас хорошо

876
01:35:53.640 --> 01:35:59.470
Михаил Непряхин: Если с винтами как вроде бы очевидно и все понятно, То вот со структурами

877
01:36:00.690 --> 01:36:02.370
Михаил Непряхин: а уже Не так.

878
01:36:03.480 --> 01:36:06.890
Михаил Непряхин: А потому что вы будете повсеместно

879
01:36:07.200 --> 01:36:13.630
Михаил Непряхин: видеть э вот эту историю что люди почему-то а у меня там Юзер, уже

880
01:36:13.790 --> 01:36:14.890
Михаил Непряхин: езда,

881
01:36:15.280 --> 01:36:24.370
Михаил Непряхин: люди почему то упорно вот так вот повсеместно принимают в аргументах указатель но опять же под предлогом того что

882
01:36:24.600 --> 01:36:30.860
Михаил Непряхин: я там типа экономлю чего-то там еще чего-то да ну, как бы, какие-то тараканы есть в голове соображения

883
01:36:31.020 --> 01:36:33.280
Михаил Непряхин: вот но вы просто берете

884
01:36:33.680 --> 01:36:36.650
Михаил Непряхин: и работаете вот так вот без указателя

885
01:36:37.090 --> 01:36:39.790
Михаил Непряхин: и у вас почти Всегда, все хорошо,

886
01:36:39.910 --> 01:36:47.850
Михаил Непряхин: а там где нужен указатель ну так и быть вы на него отдельно. Возьмете передадите Куда то где этот указатель Реально нужен

887
01:36:48.800 --> 01:36:49.640
Михаил Непряхин: вот

888
01:36:54.380 --> 01:36:58.550
Михаил Непряхин: в мгу если поттер указывает на структуру можно обращаться так

889
01:36:58.750 --> 01:37:01.230
Михаил Непряхин: Окей без века перп

890
01:37:02.130 --> 01:37:07.710
Михаил Непряхин: да потому Что тут еще прикол, в том Что когда У вас

891
01:37:07.840 --> 01:37:10.660
Михаил Непряхин: вы работаете со Структурой по указателю

892
01:37:11.090 --> 01:37:12.530
Михаил Непряхин: То У вас

893
01:37:12.680 --> 01:37:13.410
Михаил Непряхин: а и

894
01:37:14.420 --> 01:37:17.250
Михаил Непряхин: нету Явного Разименования, в структуре

895
01:37:17.470 --> 01:37:19.340
Михаил Непряхин: То есть вот Если синдром

896
01:37:20.120 --> 01:37:22.530
Михаил Непряхин: Сейчас найдем пожалуйста, минт

897
01:37:23.490 --> 01:37:27.830
Михаил Непряхин: вот синтом нам надо обязательно эту Звездочку использовать

898
01:37:28.220 --> 01:37:38.080
Михаил Непряхин: Со структурами оно Автоматически разименовывается и когда вы работаете, Со структурами У вас вот Этой звездочки Нет

899
01:37:38.630 --> 01:37:41.060
Михаил Непряхин: Мы тоже еще на это посмотрим

900
01:37:42.480 --> 01:37:47.660
Михаил Непряхин: как, когда будем разбираться разбираться с северами по указателю по значению

901
01:37:47.890 --> 01:37:52.140
Михаил Непряхин: тоже большая тема и

902
01:37:52.600 --> 01:37:58.310
Михаил Непряхин: беда в том что вот много где этот указатель опущен

903
01:37:58.900 --> 01:38:02.040
Михаил Непряхин: например, вот у нас Есть папа

904
01:38:03.100 --> 01:38:04.850
Михаил Непряхин: смотрим на

905
01:38:05.810 --> 01:38:07.420
Михаил Непряхин: тип мапы вот это тип

906
01:38:08.020 --> 01:38:13.060
Михаил Непряхин: реально это указатель в памяти это указатель у нас М Это указатель

907
01:38:13.190 --> 01:38:15.940
Михаил Непряхин: и Раньше, вот здесь была Звездочка

908
01:38:16.350 --> 01:38:18.010
Михаил Непряхин: Но Ее

909
01:38:18.190 --> 01:38:28.590
Михаил Непряхин: упразднили Потому Что Ну, мама Это Всегда указатель чуть Теперь Эту Звездочку сделать Поэтому ее опустили и вот вы смотрите на Это а Это указатель а не видно Что Это указатель

910
01:38:29.170 --> 01:38:35.630
Михаил Непряхин: То же самое про функцию когда вы Объявляете функцию звездочка есть а ее не видно

911
01:38:36.760 --> 01:38:51.970
Михаил Непряхин: То же самое с свайсом вы смотрите на свайс разве видно Что Это указатель Нет не видно а Реально. Структура указать ну да там во франции в понятых правильно свайся а Реально. Структура с лайса она выглядит как указатель

912
01:38:52.000 --> 01:38:59.300
Михаил Непряхин: и еще два поля леника пасе и реально это указатель то есть когда вы смотрите на это вы должны понимать что Там внутри указатель

913
01:39:00.010 --> 01:39:02.830
Михаил Непряхин: аа то же самое с интерфейсом

914
01:39:03.020 --> 01:39:03.910
Михаил Непряхин: а

915
01:39:04.720 --> 01:39:14.330
Михаил Непряхин: со стренгой стринга это указатель но когда вы смотрите на тип стрингу э не видно Что Это указатель

916
01:39:15.300 --> 01:39:17.120
Михаил Непряхин: с антрофейсом То же самое

917
01:39:17.250 --> 01:39:18.460
Михаил Непряхин: с канавом

918
01:39:19.940 --> 01:39:22.070
Михаил Непряхин: ну вот и из функции недавно рассказал

919
01:39:22.520 --> 01:39:31.370
Михаил Непряхин: вот Поэтому вот эта вот тема в гоу Что является указателем а Что указателем Не является она важна

920
01:39:31.370 --> 01:39:43.550
Михаил Непряхин: потому Что она как бы ну вот базовая то есть как бы вот там из каких-то Сложных. Тем Еще Которые в остались ну вот с Асфальтсом, Разобраться да Но она такая Как бы Не такая сложная ну Что ссылается есть в других языках академические массивы

921
01:39:44.670 --> 01:39:51.000
Михаил Непряхин: а по Сути осталась разобраться только с и

922
01:39:51.660 --> 01:40:01.480
Михаил Непряхин: и вот самая сложная тема топ один, в гоу Она именно связана с тем что Является указателем что Нет

923
01:40:01.730 --> 01:40:03.900
Михаил Непряхин: как они себя ведут

924
01:40:04.720 --> 01:40:07.260
Михаил Непряхин: а как типа устроена на низком Уровне

925
01:40:07.800 --> 01:40:25.570
Михаил Непряхин: и вот у меня здесь есть шпаргалка как Раз для того Чтобы посмотреть и

926
01:40:25.770 --> 01:40:31.050
Михаил Непряхин: у нас есть три толстых указателя это Слайсы там три поля

927
01:40:31.400 --> 01:40:32.550
Михаил Непряхин: стринга

928
01:40:32.920 --> 01:40:36.340
Михаил Непряхин: там два поля указатель и длина

929
01:40:36.480 --> 01:40:42.960
Михаил Непряхин: интерфейс там два поля Это указатель назначения и указатель на таблицу Виртуальных методов

930
01:40:43.240 --> 01:40:46.050
Михаил Непряхин: ну. Сам указатель понятно Это есть указатель

931
01:40:46.240 --> 01:40:49.480
Михаил Непряхин: мапа это просто указатель намапу

932
01:40:49.780 --> 01:40:52.310
Михаил Непряхин: канал это указательный канал

933
01:40:52.540 --> 01:40:53.690
Михаил Непряхин: функция

934
01:40:54.180 --> 01:40:58.640
Михаил Непряхин: это имеется в виду анонимная функция это указательную Функцию,

935
01:40:59.690 --> 01:41:01.010
Михаил Непряхин: и

936
01:41:01.140 --> 01:41:02.350
Михаил Непряхин: вот это вот

937
01:41:02.530 --> 01:41:07.330
Михаил Непряхин: э прямо база которая как бы конечная не очень большая

938
01:41:07.450 --> 01:41:12.740
Михаил Непряхин: но с ней надо разобраться один Раз, и просто ее понять и не возвращаться к этому

939
01:41:13.370 --> 01:41:21.880
Михаил Непряхин: вот и мы еще будем разговаривать про структуры то есть вот мы Сейчас. Поговорили просто про простые типы

940
01:41:22.100 --> 01:41:34.120
Михаил Непряхин: и также Поговорим про структуры с методами потому Что методы у структуры тоже бывают по указателю а и по значению и вот там прямо

941
01:41:34.440 --> 01:41:39.560
Михаил Непряхин: песня какая Сложная тема потому что там тоже упраздняется вот эта звездочка

942
01:41:42.010 --> 01:41:50.630
Михаил Непряхин: Так канал инфраструктуру когда мы структуру передаем функцию безуказателен структуры копируются

943
01:41:51.510 --> 01:42:03.610
Михаил Непряхин: когда все таки необходимо Использовать указатели в параметрах функции. Когда это Обосновано когда структура Более одного негабайта и когда хочу ну да во-первых когда структура Более одного мегабайта

944
01:42:03.750 --> 01:42:10.680
Михаил Непряхин: но такое бывает Очень редко Но вот Например, и когда хочу функции поменять значение структуры вне функций,

945
01:42:11.030 --> 01:42:12.390
Михаил Непряхин: ну как бы да

946
01:42:12.680 --> 01:42:15.970
Михаил Непряхин: Но Например, вот вы когда с мамой работаете

947
01:42:16.950 --> 01:42:18.500
Михаил Непряхин: ну вот дома подойдем

948
01:42:19.450 --> 01:42:20.470
Михаил Непряхин: Хашмапа

949
01:42:20.730 --> 01:42:23.530
Михаил Непряхин: если вы Куда, то передали хэшмапу

950
01:42:23.670 --> 01:42:34.570
Михаил Непряхин: вы просто понимаете Что. Хэшмапа это указательный кошмапу если вы куда-то передали этот указатель ну. Кто угодно его меняет и Ваша, кошма поменяется

951
01:42:35.920 --> 01:42:43.170
Михаил Непряхин: и Ну, это Сайт. Эффект да Начнем с этого что У вас уже появляется вот это вот

952
01:42:43.540 --> 01:42:47.440
Михаил Непряхин: вы должны контролировать кто еще владеет указателем

953
01:42:49.610 --> 01:42:51.330
Михаил Непряхин: вы должны проверять на нил,

954
01:42:51.760 --> 01:42:56.470
Михаил Непряхин: значит ну Давайте так подумаем когда нам нужно все-таки работать по указателю

955
01:42:57.220 --> 01:42:59.300
Михаил Непряхин: Кроме больших. Структур,

956
01:42:59.480 --> 01:43:11.640
Михаил Непряхин: когда мы имеем дело с интерфейсами вот как бы, эта тема с указательными типами Она появилась потому что у нас есть Интерфейсы то есть у нас в гол есть полиморфизм

957
01:43:13.210 --> 01:43:18.840
Михаил Непряхин: и полиморфизм Реализован в гол Через интерфейсы

958
01:43:19.700 --> 01:43:22.650
Михаил Непряхин: и для того чтобы Вызывать

959
01:43:23.470 --> 01:43:30.350
Михаил Непряхин: Сейчас сложно Скажу. Но кто, Поймет тот примет кто, Нет еще отвечая на Вопрос для того чтобы

960
01:43:30.750 --> 01:43:33.400
Михаил Непряхин: У структуры Вызвать

961
01:43:34.920 --> 01:43:37.110
Михаил Непряхин: метод по указателю

962
01:43:37.410 --> 01:43:42.690
Михаил Непряхин: нужно его обязательное авентрофейс передать по указателю

963
01:43:43.070 --> 01:43:47.700
Михаил Непряхин: может если вы не передадите его по указатель То он не передаст компилятор не Даст

964
01:43:48.110 --> 01:43:49.770
Михаил Непряхин: и вот Там возникают

965
01:43:49.970 --> 01:43:51.400
Михаил Непряхин: указатели,

966
01:43:51.710 --> 01:43:54.000
Михаил Непряхин: То есть в целом как бы

967
01:43:54.300 --> 01:44:11.570
Михаил Непряхин: Мы понимаем что если нам нужно какие-то патроны реализовать Мы какой-то полиморфизм хотим? Зарезать Мы хотим? Интерфейс зарезать Там появятся указатели неизбежно джинерики когда Мы дженерики бомбьюзы Там указатели появятся неизбежно по-другому работать Не будут

968
01:44:11.950 --> 01:44:12.900
Михаил Непряхин: вот

969
01:44:13.060 --> 01:44:15.890
Михаил Непряхин: и когда мы

970
01:44:16.850 --> 01:44:21.580
Михаил Непряхин: не умеем программировать не умеем писать программу как дерево

971
01:44:22.410 --> 01:44:25.020
Михаил Непряхин: когда у нас появляются как бы такие

972
01:44:25.930 --> 01:44:27.520
Михаил Непряхин: а

973
01:44:28.290 --> 01:44:30.570
Михаил Непряхин: когда появляется несколько мест

974
01:44:30.650 --> 01:44:43.480
Михаил Непряхин: Которые могут поменять эту переменную когда есть какой-то стейт то есть в целом когда Программа написана не совсем корректно но у нас как бы программисты Не то чтобы хорошо уметь Писать программу Поэтому такие программы У нас и появляются да

975
01:44:43.510 --> 01:44:57.010
Михаил Непряхин: то есть Поэтому я вам и говорю Что Не нужно вот этот локальное Переменное глобальное Переменное куда-то там Передавать а когда вы работаете с указателем вы этим и занимаетесь То есть У вас появляются вот Эти, сайты

976
01:44:57.390 --> 01:45:01.650
Михаил Непряхин: и если, вы Один на проекте

977
01:45:01.840 --> 01:45:12.480
Михаил Непряхин: То вы конечно обычно можете все заранее там как-то архитектуру Продумать и Написать так чтобы У вас никогда Эти указатели Не Появились Можно Все без указательно Писать

978
01:45:12.840 --> 01:45:23.150
Михаил Непряхин: Но когда У вас несколько Человек в Команде Или Вы Работаете с легой сикодом да даже Не с Вегасе просто когда в Команде несколько Человек работают

979
01:45:23.660 --> 01:45:33.510
Михаил Непряхин: Ты Смотришь на Кот и понимаешь Что Ты Не. Можешь эээ сделать изменения кроме как: Использовать указатель и Ты его используешь

980
01:45:33.820 --> 01:45:40.190
Михаил Непряхин: То есть Как. Бы указатель он Нужен для решения ну, как:

981
01:45:40.730 --> 01:45:46.420
Михаил Непряхин: третья. Как костырь какой-то да То есть когда мы Не Можем По-другому мы Юзам указатель и там Появляются указатели

982
01:45:46.760 --> 01:46:04.100
Михаил Непряхин: вот а но Если, мы можем. Без Указателей то Мы конечно же с радостью Работаем без Указателей Особенно, абсурдно. У новичков. Видеть сталингу как указатель потому Что блин стренгатый так указатель уже

983
01:46:04.460 --> 01:46:08.480
Михаил Непряхин: ты толстый указатель просто там Внутри еще есть длина

984
01:46:08.660 --> 01:46:10.550
Михаил Непряхин: или инд как указатель

985
01:46:11.070 --> 01:46:12.260
Михаил Непряхин: но и

986
01:46:12.500 --> 01:46:21.570
Михаил Непряхин: в Одном месте это используется у нас Там есть приколы с жесонами когда Мы делаем стерилизацию десериализацию с ресоном.

987
01:46:22.070 --> 01:46:24.270
Михаил Непряхин: Для того чтобы Отличить

988
01:46:24.700 --> 01:46:37.530
Михаил Непряхин: было значение Или Оно зеровелью вот у нас же в чем проблема это появляется что вот мы вот получаем ноль в джейсоне вот из джейсона ичусь он превращаем в структуру видим ноль

989
01:46:37.840 --> 01:46:38.860
Михаил Непряхин: вопрос

990
01:46:39.100 --> 01:46:41.690
Михаил Непряхин: Это нам, прислали ноль

991
01:46:41.830 --> 01:46:48.040
Михаил Непряхин: или Это значение по умолчанию то Есть значения не было но у нас оно ноль

992
01:46:48.420 --> 01:47:02.620
Михаил Непряхин: и вот чтобы это Победить приходится инты использовать по указателю но это единственное Место, где Использование интапа указателю как бы, ну оправдано потому Что он по другому никак

993
01:47:02.850 --> 01:47:06.610
Михаил Непряхин: потому что если вы используете по указателю инд

994
01:47:06.760 --> 01:47:08.300
Михаил Непряхин: зеркалью нил,

995
01:47:08.540 --> 01:47:19.950
Михаил Непряхин: соответственно если вы из джейсона, превращаете жизнь в структуру и видите ним это значит значения не было если, вы видите ноль значит значение было ноль все просто

996
01:47:20.070 --> 01:47:25.390
Михаил Непряхин: вы можете отличить отсутствие, отсутствующее значение от значения по Умолчанию,

997
01:47:25.560 --> 01:47:37.700
Михаил Непряхин: вот а вот в этом случае Вы не можете отличить получайте ноль ну и все как бы то, ли пользователь ноль прислал то, ли и пользователь ничего не прислал у вас ноль вот как бы это единственное место где указатели на простых типах оправданы

998
01:47:37.950 --> 01:47:43.020
Михаил Непряхин: вот во всех остальных случаях конечно указатели появляются над у структур

999
01:47:43.570 --> 01:47:48.640
Михаил Непряхин: но почти Всегда можно обойтись без указателей

1000
01:47:49.180 --> 01:47:53.720
Михаил Непряхин: Поэтому цель на самом деле не то что Всегда писать без Указателей

1001
01:47:53.950 --> 01:47:56.410
Михаил Непряхин: цель понимать

1002
01:47:56.660 --> 01:47:58.440
Михаил Непряхин: зачем Нужен указатель

1003
01:47:58.590 --> 01:48:02.150
Михаил Непряхин: то есть как бы вот именно как бы осознанно понимать зачем он Нужен

1004
01:48:02.610 --> 01:48:04.920
Михаил Непряхин: и и

1005
01:48:06.150 --> 01:48:18.040
Михаил Непряхин: уметь об, этом Разговаривать потому что если Вы начнете говорить об этом или как Бы Мы Не можем подготовиться на все собеседники, на все Вопросы, Собеседования,

1006
01:48:18.470 --> 01:48:22.580
Михаил Непряхин: как бы учить правильные Ответы

1007
01:48:22.740 --> 01:48:27.860
Михаил Непряхин: Э сложнее чем Просто блин Реально разобраться как оно работает

1008
01:48:28.610 --> 01:48:35.130
Михаил Непряхин: и когда вы понимаете как оно работает вы на любой вопрос и так ответите, вам не надо заучивать правильные Ответы

1009
01:48:35.370 --> 01:48:44.930
Михаил Непряхин: вот Поэтому есть случаи где проще выучить, правильный ответ но вот в этом случае и для работы и для собеседников проще все таки разобраться как оно работает

1010
01:48:45.140 --> 01:48:55.930
Михаил Непряхин: Поэтому прямо вот можете вот с указателями, вот просто поэкспериментировать посмотреть ну вот эти вот все приколы Со Многими Звездочками Тоже, Попробовать вот это вот посмотреть

1011
01:48:56.140 --> 01:49:03.310
Михаил Непряхин: а Оно короче говоря когда я рассказываю Вы вроде, бы слушаете Да ну понятно когда начинаешь с этим работать

1012
01:49:04.030 --> 01:49:14.050
Михаил Непряхин: удивляешься почему Так Не работают почему сяк Не работает вроде, бы вроде, все логично То Есть с этим надо прямо вот пережить и прочувствовать на себе

1013
01:49:14.730 --> 01:49:21.770
Михаил Непряхин: Так указательно свайся дело По Ночам Ну, это да это Тоже, это прикол лоу типа

1014
01:49:22.190 --> 01:49:30.790
Михаил Непряхин: тек когда вы видите когда вы увидите допустим у коллеги вот этот вот

1015
01:49:31.280 --> 01:49:34.180
Михаил Непряхин: вот допустим принимает

1016
01:49:34.930 --> 01:49:35.820
Михаил Непряхин: слайс

1017
01:49:36.760 --> 01:49:44.850
Михаил Непряхин: и если вы видитесь указатель ну типа офигеть прикол то есть у вас указатель но указатель

1018
01:49:45.290 --> 01:49:46.660
Михаил Непряхин: и ну

1019
01:49:47.330 --> 01:49:57.390
Михаил Непряхин: как бы конечно так Можно Можно и четыре указателя на обманой да но вот это вот это примерно то же самое как если, бы мы вот с двумя звездочками тут работали

1020
01:49:57.940 --> 01:50:03.430
Михаил Непряхин: понимаете иначе у Меня, то есть с двумя Звездочками как внук зачем зачем делать указательный указатель

1021
01:50:03.840 --> 01:50:11.400
Михаил Непряхин: вот Поэтому со слайсом мы Ну мы Еще тут в следующий Раз просвайся и поговорим подробно что это такое как с ними работать

1022
01:50:12.090 --> 01:50:23.900
Михаил Непряхин: вот ну, просто как бы видите вот это да вы как бы понимаете Внутри указатель просто с дополнительной Информацией с дополнительными Полями Но Думайте о нем как об указателе

1023
01:50:24.120 --> 01:50:26.580
Михаил Непряхин: как Будто бы вот здесь есть Звездочка

1024
01:50:28.700 --> 01:50:34.620
Михаил Непряхин: Так. Часто в Интервью, Ругают излишнего указателя Нет в том то и дело Что Даже

1025
01:50:34.810 --> 01:50:40.760
Михаил Непряхин: опытные гошники они Не Разобрались в свое, время с Этой темой

1026
01:50:41.470 --> 01:50:45.140
Михаил Непряхин: и они продолжают просто везде лепить указатели

1027
01:50:45.730 --> 01:50:47.700
Михаил Непряхин: потому Что

1028
01:50:48.540 --> 01:50:50.160
Михаил Непряхин: ну. Как бы

1029
01:50:50.480 --> 01:50:56.990
Михаил Непряхин: если вы просто везде используете указатели у вас просто все работает и все как бы ну так в основном пишут

1030
01:50:57.170 --> 01:51:01.760
Михаил Непряхин: то есть среднестатистическая Программа, на гол обмазана указателями

1031
01:51:02.250 --> 01:51:07.030
Михаил Непряхин: и и

1032
01:51:07.490 --> 01:51:08.840
Михаил Непряхин: о где то он

1033
01:51:09.250 --> 01:51:26.460
Михаил Непряхин: в дискотеке что, у них там горбочка электрик заваливался и они перешли на Раз, и вот у них там проблемы решились ну так наверное Обманывать все Было указателями как бы вот и нагрузка пошманный геройшколектор как бы и средняя программа да очень много Указателей используется

1034
01:51:27.500 --> 01:51:37.370
Михаил Непряхин: Поэтому как бы неизбежно если вы будете поддерживать чужие код вы с этими указателями Повсеместно Будет сталкиваться ну хотя бы свой код когда пишете просто включаете Голову.

1035
01:51:37.490 --> 01:51:40.650
Михаил Непряхин: Как бы вот ну надо или нет или можно обойтись

1036
01:51:41.300 --> 01:51:44.510
Михаил Непряхин: так Ко чем отличается толсток взяли эту общину я похож Из пропустил.

1037
01:51:44.860 --> 01:51:48.810
Михаил Непряхин: И толстый указатель это когда у нас

1038
01:51:48.940 --> 01:51:55.650
Михаил Непряхин: кроме указателя еще дополнительная поля есть но в следующий Раз посмотрим вот пример Толстого указателя слайс

1039
01:51:56.360 --> 01:51:58.970
Михаил Непряхин: слайс это структура

1040
01:52:00.370 --> 01:52:03.680
Михаил Непряхин: с указателем и двумя дополнительными полями

1041
01:52:04.030 --> 01:52:11.410
Михаил Непряхин: вот Это называется толстый указатель есть ли у нас просто указатель как в функции. Или в мапе

1042
01:52:11.790 --> 01:52:25.150
Михаил Непряхин: а То это тонкий указатель ну. Это обычный указатель не Говорят полностью указатель а вот если указатель Еще с дополнительными полями в структуре То Это толстый указатель и когда Мы его Куда То копируем

1043
01:52:25.530 --> 01:52:28.170
Михаил Непряхин: То происходит копирование всех полей

1044
01:52:28.720 --> 01:52:39.570
Михаил Непряхин: и Поэтому Нет смысла слайс Передавать по указателю потому, что вот это вот это Число это инт да можете про это думать как про инт

1045
01:52:39.700 --> 01:52:41.730
Михаил Непряхин: оно просто скопируется

1046
01:52:42.070 --> 01:52:44.980
Михаил Непряхин: и вы будете Иметь,

1047
01:52:45.110 --> 01:52:54.060
Михаил Непряхин: функции Внутри и

1048
01:52:54.730 --> 01:52:58.400
Михаил Непряхин: а вы будете Иметь Внутри и Так указатель на массив

1049
01:52:59.230 --> 01:53:03.610
Михаил Непряхин: и как бы все нормально не надо свадьбу показателю Передавать с Моей семьей указать

1050
01:53:05.090 --> 01:53:06.200
Михаил Непряхин: так

1051
01:53:07.070 --> 01:53:10.430
Михаил Непряхин: еврекция ю из мема ну вот это я не знаю

1052
01:53:11.190 --> 01:53:13.000
Михаил Непряхин: да то есть и

1053
01:53:14.160 --> 01:53:17.540
Михаил Непряхин: задержались вроде немного в общем смотрите подытоживая

1054
01:53:18.180 --> 01:53:24.860
Михаил Непряхин: и Критически важно не забить на тему, с указателями и таки разобраться с ними

1055
01:53:24.960 --> 01:53:44.900
Михаил Непряхин: и Мы еще к ним будем возвращаться Там ни одной недели лекции, потому что ну вот это вот есть гоу да как бы типов и их мало вот они все типы больше ничего нет и просто с ними надо разобраться один Раз и все и вы будете синьорным синьором просто через год

1056
01:53:45.080 --> 01:53:57.900
Михаил Непряхин: потому что если бы вы не разобрались с один Раз вначале с указателями Вы потом к ним Не вернетесь потому Что Ей стыдно Будет и Не надо Будет и вообще как бы лучше, об, этом не думать,

1057
01:53:58.550 --> 01:54:07.590
Михаил Непряхин: вот Ну и соответственно вам много денег никогда не Будут платить, потому, что вы не сможете синьорный собес пройти потому Что Там Это обязательно где То всплывет рано Или поздно

1058
01:54:09.850 --> 01:54:10.870
Михаил Непряхин: так.

1059
01:54:11.060 --> 01:54:11.930
Михаил Непряхин: С и

1060
01:54:14.370 --> 01:54:23.140
Михаил Непряхин: У задачки на дзе смотрите вы просто вот посмотрите как вот эта Работа. То Есть задачки потом еще будут прямо, вот собесовские задачки

1061
01:54:23.700 --> 01:54:25.110
Михаил Непряхин: но а

1062
01:54:25.230 --> 01:54:34.080
Михаил Непряхин: и и

1063
01:54:34.080 --> 01:54:51.760
Михаил Непряхин: по передавайте из функции функцию То есть лучше самим это пощупать потому что каких-то хороших. Задач Здесь невозможно придумать потому что они Есть для собеседников но как бы это мы и

1064
01:54:52.080 --> 01:54:55.860
Михаил Непряхин: вот а Пока деза какого-то хорошего ну тут, сложно придумать

1065
01:54:56.730 --> 01:55:08.170
Михаил Непряхин: получается проблемы мы используем указатели такие авокации Поэтому медленно и нагрузка намеров в коллектор стоят дефекты да потому, что. Любой кто еще владеет указателем чтобы его взять и изменить

1066
01:55:09.530 --> 01:55:13.980
Михаил Непряхин: и да до проверки на нил. Которую никто естественно не Делает

1067
01:55:14.080 --> 01:55:19.910
Михаил Непряхин: и Которые влекут нестабильное поведение программы из-за которых надо, больше писать тестов

1068
01:55:20.130 --> 01:55:23.300
Михаил Непряхин: потому что все линец. Ленятся проверять и

1069
01:55:23.780 --> 01:55:26.710
Михаил Непряхин: на нил, структуру как бы

1070
01:55:27.210 --> 01:55:30.340
Михаил Непряхин: по сути как бы вы если принимаете указатель

1071
01:55:30.470 --> 01:55:33.090
Михаил Непряхин: вы обязаны проверить на нее но в гоу

1072
01:55:33.270 --> 01:55:36.150
Михаил Непряхин: так не принято а на ним почти никогда никто не проверяет

1073
01:55:37.100 --> 01:55:47.880
Михаил Непряхин: какие бывают Вопросы, показания собеседника вот это вот вот это вот и еще там парочка Задач, потом их посмотрим потому Что они Там специфические и они Там с Энтрофейсами еще связаны

1074
01:55:48.540 --> 01:55:49.630
Михаил Непряхин: как же Дойдем

1075
01:55:52.380 --> 01:55:59.110
Михаил Непряхин: любишь указатель обеднева пытался писать если бы Это писали Но этого Не пишут

1076
01:56:00.240 --> 01:56:11.610
Михаил Непряхин: Так ладно все сегодня была Реально Сложная тема короче Спасибо сегодня со скрипом разве что. Напрямую что. Не поспорили ну да да да какая то жизнь впрочем не используется

1077
01:56:11.980 --> 01:56:14.460
Михаил Непряхин: ладно все давайте

1078
01:56:14.610 --> 01:56:15.810
Михаил Непряхин: на этом все

1079
01:56:16.330 --> 01:56:17.660
Михаил Непряхин: шум давайте пока.

