19:58:31 От Mike Deruygin : это что у совы, уши? 20:00:20 От Mike Deruygin : вечер добрый 20:00:31 От andrei : а звук есть? 20:00:40 От Nikolay Yakubitskiy : всем привет 20:01:14 От Виталий : + 20:01:15 От Denis Saburov : + 20:01:15 От Mike Deruygin : + 20:01:15 От Dmitriy Zyuzin : + 20:01:16 От Mikhail : + 20:01:16 От Nikolay : + 20:01:18 От Dmitry Pavlov : + 20:01:19 От Nikolay Yakubitskiy : + 20:02:39 От Mike Deruygin : будет 20:02:40 От Григорий Заводов : 1 20:02:42 От Nikolay : обычно все пишут в чат 20:02:50 От Denis Saburov : Есть, но идея не очень 20:03:43 От Григорий Заводов : контракт 20:03:50 От Dmitry Pavlov : набор фунций 20:04:09 От Artem Shtykov : Code contract 20:04:10 От Dmitry Pavlov : ну да 20:05:02 От Григорий Заводов : для взаимодействия между разными API 20:05:09 От Dmitry Pavlov : + 20:05:11 От Mike Deruygin : + 20:05:12 От Григорий Заводов : да 20:05:12 От Mikhail : + 20:05:13 От Dmitriy Zyuzin : + 20:05:14 От Vyacheslav.Sitnikov : крякает как утка 20:05:18 От Даурен : - 20:05:34 От Artem Shtykov : в питоне 20:05:40 От Григорий Заводов : утка хромает ) 20:06:07 От Nikolay : Контракт тоже не совсем подходит, поскольку нет явного объявления реализации интерфейса , как в Java 20:07:02 От Nikolay : Явного объявления, да 20:07:24 От Dmitry Pavlov : утиный контракт) 20:07:46 От Vyacheslav.Sitnikov : а если не все методы? 20:08:22 От Denis Saburov : Если метод в двух разных интерфейсах (у которых их всего один), то он реализует оба? 20:09:24 От Григорий Заводов : да 20:09:36 От Vyacheslav.Sitnikov : утка может быть собакой? 20:11:44 От Григорий Заводов : + 20:11:44 От Mike Deruygin : + 20:11:46 От Denis Saburov : + 20:11:47 От Nikolay : + 20:11:47 От Mikhail : + 20:11:48 От Даурен : + 20:11:52 От Vyacheslav.Sitnikov : дайте чутка времени осмыслить 20:11:52 От Dmitry Pavlov : + 20:12:00 От Artem Shtykov : + 20:12:07 От Vyacheslav.Sitnikov : ок 20:14:01 От Denis Saburov : нету 20:14:04 От Mikhail : + 20:14:04 От Mike Deruygin : + 20:14:05 От Nikolay : + 20:14:05 От andrei : + 20:14:05 От Григорий Заводов : + 20:14:06 От Dmitriy Zyuzin : + 20:14:06 От Vyacheslav.Sitnikov : + 20:14:07 От Dmitry Pavlov : + 20:14:08 От Dmitriy Tselinko : + 20:14:49 От Denis Saburov : в интерфейсе только методы могут быть верно? 20:14:52 От glb : что с переменными в интерфейсе? 20:15:51 От glb : спасибо, порядок функций надеюсь не важен? 20:16:01 От glb : правильно поняли, спасибо за ответ 20:16:02 От Mike Deruygin : возвращаемый тип обязателен для метода интерфейса? 20:16:09 От Vyacheslav.Sitnikov : а интерфейс может содердать другой интерфейс? 20:16:45 От Mike Deruygin : ага, спасибо 20:16:53 От glb : вот кстати, если возвращается interface{}, то он не совместим с более детальноц типизацией? 20:16:56 От Denis Saburov : Реализация методов в структурах можно ли внутри структуры или обязательно всегда писать func(t *Type) name()? 20:18:56 От Vyacheslav.Sitnikov : а если названия методов совпадают? 20:18:58 От Dmitriy Tselinko : у Stringer может быть метод hello тоже или будет ошибка в таком случае? 20:19:19 От Dmitriy Tselinko : тот же самый вопрос 20:20:50 От Vyacheslav.Sitnikov : а если такое же название, но типы разные? 20:21:05 От Vyacheslav.Sitnikov : ага 20:23:24 От Nikolay : понятно 20:24:01 От Denis Saburov : А какой тип у предыдущего второго примера 20:24:05 От Denis Saburov : у переменнойё 20:24:57 От Denis Saburov : loop 20:24:59 От Mike Deruygin : ошибка 20:25:02 От andrei : err 20:25:19 От andrei : da 20:25:20 От Mikhail : да 20:25:21 От Nikolay : да 20:25:21 От Vyacheslav.Sitnikov : да 20:25:25 От Denis Saburov : да 20:25:25 От andrei : da 20:25:25 От Vyacheslav.Sitnikov : да 20:25:26 От Mikhail : да 20:25:52 От Denis Saburov : vals 20:26:09 От Denis Saburov : спасибо 20:26:26 От Артем Желтак : https://play.golang.org/p/U1V7tpVl9iI 20:26:46 От andrey : + 20:26:47 От Nikolay : + 20:26:47 От Denis Saburov : шрифт + 20:26:48 От Mikhail : + 20:26:48 От andrei : + 20:26:48 От Dmitry Pavlov : + 20:26:49 От Vyacheslav.Sitnikov : + 20:26:50 От Виталий : + 20:26:52 От Artem Shtykov : + 20:26:54 От Артем Желтак : https://play.golang.org/p/U1V7tpVl9iI 20:27:22 От Artem Shtykov : Коллега просил увеличить шрифт 20:27:31 От Artem Shtykov : прошлый раз подошел 18 20:27:53 От Denis Saburov : Мне норм 20:27:56 От Artem Shtykov : Спрашивал Денис 20:29:58 От Dmitry Pavlov : https://play.golang.org/p/CL6jYcO4_-q 20:32:02 От andrei : + 20:33:13 От Григорий Заводов : https://play.golang.org/p/RhjYUo3J-Mh 20:33:15 От Eugene Klimov : https://play.golang.org/p/agVeo6ArPp_z 20:34:12 От Vyacheslav.Sitnikov : https://play.golang.org/p/tAfuTSi4jvX 20:34:56 От Григорий Заводов : fmt.Sprintf 20:35:56 От Vyacheslav.Sitnikov : А почему не используются указатели? например не func (p Person), а func (p *Person) 20:36:24 От Artem Shtykov : Read only методы 20:36:24 От Nikolay : скажите пожалуйста, почему нельзя указать получателя в методе как указатель? 20:36:34 От Nikolay : спасибо 20:36:39 От Denis Saburov : bool 20:37:12 От Denis Saburov : Как насчет всегда указывать (m *Person) вместо (m Person) даже если ничего не изменяешь? 20:37:24 От Vyacheslav.Sitnikov : >=18 20:38:00 От Nikolay : + 20:38:02 От Dmitry Pavlov : + 20:38:03 От Григорий Заводов : + 20:38:04 От andrey : + 20:38:05 От Vyacheslav.Sitnikov : + 20:39:47 От Григорий Заводов : структура реализует интерфейс, а ук-ль нет 20:41:49 От Denis Saburov : А как здесь получить данные? 20:42:46 От Denis Saburov : Перключитесь в иде 20:43:01 От Denis Saburov : У вас пример sum 20:43:09 От Denis Saburov : ок 20:43:53 От Denis Saburov : Спасибо, просто думал, какое-то волшебство там есть 20:43:59 От Vyacheslav.Sitnikov : а чем int(xxx) отличается от int.(xxx) 20:44:16 От Vyacheslav.Sitnikov : ой, xxx.(int) 20:44:45 От andrei : - 20:44:48 От Mike Deruygin : - 20:44:48 От andrey : на 0% 20:44:53 От Григорий Заводов : рефлексия 20:45:09 От Vyacheslav.Sitnikov : исследовать типы 20:45:10 От Denis Saburov : Чтобы достать данные, которые нельзя 20:45:13 От Dmitry Pavlov : узнавать в рантайме инфу про типы 20:45:16 От Григорий Заводов : в рантайме анализировать тип 20:45:17 От Denis Saburov : :) 20:45:21 От Nikolay : в рантайме содержимое структур получать 20:45:24 От Mike Deruygin : чтобы делать так, как не надо, в основном 20:45:29 От andrei : тэги 20:45:31 От Nikolay : метаданные 20:45:31 От andrei : читать 20:49:07 От Denis Saburov : дженерики) 20:49:22 От Vyacheslav.Sitnikov : что такое дженерики? 20:50:23 От Denis Saburov : Это шаблоны для типов 20:51:27 От Dmitry Pavlov : + 20:51:29 От Mike Deruygin : + 20:51:30 От Nikolay : 100% 20:51:32 От andrei : + 20:51:33 От Mikhail : + 20:51:34 От Denis Saburov : +- 20:52:15 От andrey : Пока вообще не понимаю где бы это могло пригодится 20:52:33 От andrey : В целом интерфейсы 20:53:47 От Mike Deruygin : пустая структура в статической части не nil, правильно? 20:53:55 От andrey : Эти примеры я понимаю , но они какие-то искусственные, пока не понимаю где бы это мне понадобилось. 20:54:02 От Denis Saburov : Это в первую очередь гарантия в коде 20:55:34 От Vyacheslav.Sitnikov : hell 20:55:37 От Vyacheslav.Sitnikov : ? 20:55:54 От Denis Saburov : hell 20:55:57 От Dmitry Pavlov : Наверное hell 20:56:06 От Mikhail : думаю hell 20:58:12 От Denis Saburov : Думаю да, валиден 20:58:14 От Vyacheslav.Sitnikov : + 20:58:14 От andrei : + 20:58:20 От Mike Deruygin : + 20:58:21 От Mikhail : + 20:59:13 От Nikolay : нет 20:59:16 От Dmitry Pavlov : + 20:59:22 От Mike Deruygin : - 20:59:22 От Vyacheslav.Sitnikov : + 20:59:23 От Nikolay : одмн и тот же метод 20:59:30 От Nikolay : в разных интерфейсах 20:59:36 От Nikolay : реализуется Т 20:59:40 От Denis Saburov : v2 I2 тут будет ошибка 20:59:46 От Григорий Заводов : M2 не реализован? 20:59:49 От Mikhail : T не реализует M2 20:59:51 От Nikolay : извиняюсь тогдавалидно 20:59:54 От Vyacheslav.Sitnikov : это в одном интерфейса одинаковые методы нельзя 20:59:57 От Denis Saburov : T не реализует I2 21:00:22 От andrei : + 21:00:23 От Nikolay : да, понятно 21:00:24 От Dmitry Pavlov : понятно 21:00:27 От Vyacheslav.Sitnikov : понятно 21:00:45 От andrey : а что за конструкция _ = v2 ? зачем она тут? 21:01:23 От Denis Saburov : Вроде говорили 21:01:26 От Григорий Заводов : было 21:01:29 От Vyacheslav.Sitnikov : не помню 21:01:44 От andrey : Это чтобы компилятор не ругался на неиспользуемые переменные? 21:02:03 От Dmitriy Tselinko : в форе было, а вот на этом примере непонятно что она делает 21:02:24 От Dmitriy Tselinko : ясно 21:03:01 От Vyacheslav.Sitnikov : А ошибку не получим? 21:03:13 От Denis Saburov : Динамические типы - это фнт, стринги? 21:03:20 От Vyacheslav.Sitnikov : я про предыдущий слайд 21:03:33 От Denis Saburov : Понял 21:03:44 От Vyacheslav.Sitnikov : Если интерфейс типа int, а мы ему xxx.(string) 21:04:51 От Vyacheslav.Sitnikov : да 21:04:52 От Dmitry Pavlov : да 21:04:54 От Mike Deruygin : + 21:04:55 От Denis Saburov : да 21:06:01 От Vyacheslav.Sitnikov : да 21:06:28 От Denis Saburov : то есть лучше всегда использовать приведение xxx.(int) вместо int()? 21:07:27 От Vyacheslav.Sitnikov : а так: interface{}(xxx).(int) ? :) 21:08:57 От Denis Saburov : неа 21:09:04 От Nikolay : оптимизацию нет 21:09:30 От Vyacheslav.Sitnikov : два типа сразу можно указать? case T1, T2 21:10:16 От Vyacheslav.Sitnikov : нельзхя же 21:10:27 От Vyacheslav.Sitnikov : для .(type) 21:11:37 От Vyacheslav.Sitnikov : хм... 21:13:02 От Nikolay : + 21:13:05 От Mike Deruygin : + 21:13:07 От Mikhail : + 21:13:09 От Denis Saburov : + 21:13:11 От andrei : + 21:13:22 От Артем Желтак : https://play.golang.org/p/4zwgnjtDz_L 21:15:18 От Vyacheslav.Sitnikov : а можно повторить задание, у меня наушники взбрыкнули 21:16:38 От Denis Saburov : https://play.golang.org/p/DdEJ5ILOgvB 21:19:37 От Dmitry Pavlov : А можно по интерфейсам? 21:19:45 От Dmitry Pavlov : https://play.golang.org/p/E55bO6L92Kw 21:19:51 От Григорий Заводов : https://play.golang.org/p/IYxQ-FnZCHS 21:20:08 От Dmitry Pavlov : свитч по интерфейсам 21:20:21 От Dmitry Pavlov : А вы пишите не интерыфейсам) 21:22:00 От Dmitry Pavlov : там return string 21:22:04 От andrey : а fallthrough тут не надо ? Малоли собака два интерфейса удовлетворяет 21:22:05 От Dmitry Pavlov : Ну просто Printf сделать 21:22:14 От Nikolay : nfv куегкт 21:22:34 От Nikolay : случайно, извиняюсь 21:23:10 От andrey : а fallthrough тут не надо ? Малоли собака два интерфейса удовлетворяет 21:23:41 От andrey : ну в смысле если тип появится с bark и sleep 21:24:40 От Nikolay : да 21:24:43 От Mikhail : да 21:24:45 От andrey : вот в этим борется fallthroug 21:25:34 От Vyacheslav.Sitnikov : break автоматом подразумевается, а falthrout позволяет проваливаться 21:25:37 От andrey : https://github.com/golang/go/wiki/Switch#fall-through 21:26:55 От andrey : нет 21:26:58 От andrey : по ссылке 21:27:15 От andrey : ага 21:28:19 От Vyacheslav.Sitnikov : Артём: https://play.golang.org/p/qIZwxZOG7ZM 21:30:33 От Артем Желтак : https://otus.ru/polls/4897/ 21:30:43 От Denis Saburov : Мы не торопимся) 21:33:51 От Mike Deruygin : я бы вот хотел бы поподробнее со статической и динамической частью разобраться 21:35:04 От Denis Saburov : nil всегда паникует на слайде что-то было 21:35:08 От Vyacheslav.Sitnikov : есть по .(type) 21:35:36 От Vyacheslav.Sitnikov : Попробуйте раскомментарить и убрать int8 в первом case 21:35:56 От Vyacheslav.Sitnikov : почему в первом случае не работает, а во втором рабоатет 21:36:02 От Vyacheslav.Sitnikov : Не видно код 21:36:19 От Dmitry Pavlov : + 21:36:20 От Vyacheslav.Sitnikov : да 21:36:45 От Vyacheslav.Sitnikov : а .(int64) будет? 21:37:39 От Vyacheslav.Sitnikov : Но по отдельности-то работает 21:38:29 От Vyacheslav.Sitnikov : так тип заранее неизвестен, int8 я для примера 21:38:30 От Vyacheslav.Sitnikov : нет 21:38:36 От Vyacheslav.Sitnikov : можно голосом? 21:40:30 От Vyacheslav.Sitnikov : ок 21:40:59 От Mike Deruygin : еще вопрос по частям интерфейса, а если в статической части пустой интерфейс, то сравнение будет с nil или нет? я слышал, там какая-то готча с этим связана или с чем-то очень похожим 21:41:04 От Vyacheslav.Sitnikov : ну это я к томиу, что не всегда можно в .(type) два параметра указывать 21:41:26 От Vyacheslav.Sitnikov : *к тому 21:42:02 От Vyacheslav.Sitnikov : хорошо :) 21:42:25 От Vyacheslav.Sitnikov : да 21:42:27 От Mike Deruygin : ага, спасибо 21:42:28 От Dmitry Pavlov : читал 21:42:39 От Vyacheslav.Sitnikov : в телеге есть ссылки 21:43:07 От Dmitry Pavlov : https://habr.com/ru/company/mailru/blog/314804/ 21:44:41 От Denis Saburov : Спасибо большое! 21:44:48 От Nikolay : Спасибо 21:44:51 От Артем Желтак : https://otus.ru/polls/4897/ 21:44:53 От Vyacheslav.Sitnikov : спасибо 21:44:57 От Mike Deruygin : спасибо, хорошего вечера 21:44:59 От Виталий : спасибо 21:45:01 От Vyacheslav.Sitnikov : всего доброго