19:58:40 From Nikolay Yakubitskiy : всем привет 19:58:58 From Nikolay : Привет 19:59:02 From Dmitry : Слышно 19:59:03 From Nikolay : Слышно хорошо 19:59:04 From Denis Kolpakov : + 19:59:05 From Nikolay Yakubitskiy : + 19:59:06 From Ivan Lemeshev : + 19:59:06 From Sergey Olisov : Слышно 19:59:08 From andrei : видео нет пока 19:59:08 From Григорий Заводов : + 19:59:11 From Atverdikov : + 19:59:13 From andrei : + 19:59:15 From Mike Deruygin : + 19:59:19 From Nikolay : + 19:59:21 From Dmitry : + 19:59:22 From Ivan Lemeshev : видно 19:59:24 From Nikolay Yakubitskiy : + 19:59:26 From Denis Kolpakov : + 20:00:44 From Dmitry : С нами так сложно? 20:01:10 From Sergey Olisov : Про что курс? 20:01:18 From denis : Мы тоже хотим, чтобы нам нравилось) 20:01:58 From Vyacheslav.Sitnikov : Иван, есть предложение, я тут две конференции пропустил, смотрел в записи, очень раздражает "Да, XXX, вы правы" или "Нет, YYY, вы неправильно поняли". Я это к тому, что или давайте вопросы голосом задавать, либо зачитывайте, а то чуствуешь себя слепым :) 20:02:29 From Vyacheslav.Sitnikov : =)) 20:03:26 From Dmitriy Zyuzin : Это круто) 20:03:29 From Mike Deruygin : вот это правильный подход 20:03:30 From denis : Классно! 20:03:33 From Sergey Olisov : + 20:03:51 From Vyacheslav.Sitnikov : я за 20:03:53 From Dmitriy Tselinko : + 20:03:58 From Dmitry : я тоже за 20:04:01 From Nikolay Yakubitskiy : + 20:04:03 From Denis Kolpakov : + 20:04:08 From Sergey Olisov : + 20:04:11 From Онлайн Otus : + 20:04:14 From denis : + 20:04:14 From Dmitry : + 20:04:16 From Даурен : норм 20:04:16 From Онлайн Otus : все хорошо 20:04:17 From Sergey Olisov : + 20:04:18 From andrei : + 20:04:21 From Nikolay Yakubitskiy : + 20:05:44 From Dmitry : Мне одному кажется, что в го много чего есть, но это лучше не использовать? 20:05:44 From Mike Deruygin : отчего так? 20:05:48 From denis : НО почему? 20:06:13 From denis : А как же логика на exception-ах? 20:08:59 From Denis Kolpakov : кстати, коль об ошибках тема сегодняшняя коснемся error wrapping'a из 1.13 сегодня? 20:09:03 From Sergey Olisov : а вообще на практике локальный блок используется. 20:09:10 From Sergey Olisov : ? 20:10:39 From Dmitry : Можно написать go { … }? 20:11:04 From Dmitry : Ок, спасибо 20:12:15 From Mike Deruygin : 100 20:12:16 From Даурен : 100 20:12:16 From denis : 100 20:12:17 From Denis Kolpakov : 100 20:12:17 From Dmitry : 100 20:12:18 From Sergey Olisov : 100 20:12:20 From Ivan Lemeshev : 100 20:12:49 From Mike Deruygin : + 20:12:51 From Dmitry : + 20:12:53 From Denis Kolpakov : + 20:14:59 From Ivan Lemeshev : - 20:14:59 From Dmitry : - 20:14:59 From Dmitriy Zyuzin : - 20:14:59 From Nikolay : - 20:15:00 From Dmitriy Tselinko : - 20:15:00 From Даурен : - 20:15:00 From Denis Kolpakov : - 20:15:00 From Sergey Olisov : - 20:15:01 From andrey : - 20:15:04 From Vyacheslav.Sitnikov : А можно окно чата слева или справа от рабочего стола закрепить? Места ж полно 20:15:14 From Vyacheslav.Sitnikov : нет 20:15:18 From denis : Его не видно 20:15:18 From Vyacheslav.Sitnikov : в том-то и дело 20:15:28 From denis : Это фишка зума 20:15:49 From Dmitriy Zyuzin : Было бы полезно для записи 20:16:02 From denis : го дальше 20:16:02 From Vyacheslav.Sitnikov : в винде слева иконка не оно? 20:16:10 From Vyacheslav.Sitnikov : я про мак 20:16:19 From Vyacheslav.Sitnikov : в маке 20:16:25 From Dmitriy Zyuzin : Давайте дальше) 20:17:43 From Mike Deruygin : + 20:17:46 From denis : - 20:17:47 From Nikolay : понятно 20:17:48 From Denis Kolpakov : понятно 20:17:49 From Dmitriy Tselinko : понятно 20:17:49 From Sergey Olisov : не очень 20:18:47 From Sergey Olisov : все понял 20:19:50 From denis : Понятно 20:20:40 From Dmitriy Zyuzin : Не проходили еще) 20:23:31 From denis : - 20:23:33 From Vyacheslav.Sitnikov : верните экран 20:23:33 From Denis Kolpakov : - 20:23:36 From Dmitry : - 20:23:49 From Vyacheslav.Sitnikov : почему ptintln нез fmt 20:23:54 From Vyacheslav.Sitnikov : *без 20:24:12 From Vyacheslav.Sitnikov : ок :) 20:24:28 From Nikolay : можно ли что-то самому добавить в universe package? 20:24:55 From Vyacheslav.Sitnikov : можно, форкнуть го изменить его 20:25:00 From Vyacheslav.Sitnikov : =) 20:26:09 From andrey : for I также 20:26:13 From Vyacheslav.Sitnikov : а можно из внутреннего блока получить доступ к одноимённой переменной во из внешнего блоке? 20:26:29 From Dmitriy Tselinko : лучше в линтере запретить shadowing 20:26:50 From andrey : а как использовать счётчик? Заранее над for'ом его объявлять? 20:28:22 From Vyacheslav.Sitnikov : 4 20:28:24 From Denis Kolpakov : 3 20:28:27 From Dmitriy Zyuzin : 4 20:28:28 From Sergey Olisov : 4 20:28:28 From v.telyatnikov@xsolla.com : 4 20:28:29 From denis : 2 20:28:30 From Artem Shtykov : 3 20:28:30 From Dmitry : 3 20:28:33 From Nikolay : 3 20:28:35 From Dmitriy Tselinko : 2 20:28:36 From Eugene Klimov : 3 20:29:00 From denis : Аргумент функции? Почему там объявлена? 20:29:24 From andrey : самое время переименовать все эти иксы 20:29:57 From Vyacheslav.Sitnikov : у меня звук пропал 20:30:01 From denis : Она разве не получает значение, когда вызывается функция? 20:31:49 From Dmitry : А если оно объявлено в аргументе, почему переприсвоить позволяет? 20:32:37 From iPhone (Alexey) : это не присваивание 20:32:45 From Vyacheslav.Sitnikov : а если там не int, а string будет? 20:32:50 From Dmitry : а for… 20:32:54 From Dmitry : понятно.. 20:33:26 From Dmitry : мне понятно, спасибо 20:33:28 From Vyacheslav.Sitnikov : я про аргуметн 20:33:41 From denis : Еще вопрос передается ли кастомные типы по значению или по ссылке в метод? 20:33:47 From Vyacheslav.Sitnikov : аргумент типа string 20:33:47 From iPhone (Alexey) : присвой стринг к инту 20:34:26 From Vyacheslav.Sitnikov : да 20:35:38 From Vyacheslav.Sitnikov : да 20:35:58 From Vyacheslav.Sitnikov : А если мапа, то там не нужно чвно указатель давать? 20:36:29 From Mike Deruygin : + 20:36:29 From Vyacheslav.Sitnikov : + 20:36:31 From Dmitry : + 20:36:32 From Sergey Olisov : + 20:36:36 From Nikolay : + 20:36:49 From Dmitry Pavlov : Со слайсами объясняли на пред уроке) 20:36:55 From Ivan Lemeshev : на прошлом занятии же было про слайсы, нет? 20:37:15 From Vyacheslav.Sitnikov : а кто-то и не видел предыдущего урока :) 20:38:17 From Vyacheslav.Sitnikov : а почему? 20:38:27 From Vyacheslav.Sitnikov : там же есть одна новая переменная 20:38:55 From Vyacheslav.Sitnikov : да 20:39:02 From denis : Это только err? 20:39:29 From denis : понятно 20:39:52 From Vyacheslav.Sitnikov : это только присвоения результатов функции касается? 20:40:03 From Григорий Заводов : в примере же с кодом всё в порядке? 20:40:54 From Отус : https://docs.google.com/forms/d/e/1FAIpQLSfSRyporRbIZCeZTXKaw_8YbnwIEq0KY7HgzeVN86HH9PZukw/viewform 20:41:19 From Mike Deruygin : если не относиться к таймингу как к священной корове, то определенно, нужны) 20:41:40 From Mike Deruygin : +++ 20:41:53 From Nikolay Yakubitskiy : + 20:42:30 From denis : А если очень надо?) 20:42:53 From Григорий Заводов : и перегрузок методов нет? 20:43:36 From Vyacheslav.Sitnikov : а разве в своём интерфейсе нельзя переопределить метод? Правда без смены типов параметров 20:43:47 From Григорий Заводов : только большое кол-во аргументов 20:43:54 From Mike Deruygin : вы работали в битриксе?))) 20:44:24 From Григорий Заводов : я работаю в Битриксе 20:44:58 From iPhone (Alexey) : сочувствую 20:45:12 From Mike Deruygin : да уж) 20:45:25 From Григорий Заводов : все норм 20:45:43 From denis : Лямбда? 20:46:07 From Vyacheslav.Sitnikov : замыкания-то есть? 20:46:26 From Dmitry Pavlov : Лябмда же это просто анонимная функция 20:46:34 From Dmitry Pavlov : разве в го так нельзя? 20:47:01 From Dmitry Pavlov : ну это в питоне так) 20:47:07 From Dmitry Pavlov : а так это синонимы 20:47:16 From Denis Kolpakov : не, не так 20:47:43 From Dmitry Pavlov : да 20:48:02 From Dmitry Pavlov : я просто что это все "терминология", смысл одинаков 20:49:01 From denis : Мне норм 20:49:02 From Ivan Lemeshev : не против 20:49:04 From Vyacheslav.Sitnikov : не, норм, больше рассказывайте 20:49:05 From Ivan Ivanov : не против 20:49:09 From v.telyatnikov@xsolla.com : + 20:49:10 From Dmitry : только за 20:49:13 From volk : не против 20:49:13 From iPhone (Alexey) : все ок 20:49:18 From andrey : ок 20:52:14 From Ivan Lemeshev : такой синтаксис не го вей) 20:52:22 From andrey : этож нагляднее 20:52:23 From Vyacheslav.Sitnikov : а иногда без неё никак 20:52:36 From iPhone (Alexey) : можно как-то откидывать возвращаемые переменные? 20:52:40 From denis : Иногда это удобней 20:52:45 From Denis Kolpakov : не, нафиг именованные ретерны) 20:53:13 From Vyacheslav.Sitnikov : без именованных ретёрнов не вернуть дополненный error 20:53:19 From Vyacheslav.Sitnikov : bp gfybrb 20:53:22 From Vyacheslav.Sitnikov : из паники 20:53:28 From Vyacheslav.Sitnikov : при перехвате 20:53:29 From denis : Можно откидывать нижним подчеркиванием 20:56:57 From iPhone (Alexey) : как слайс развернуть обратно в отдельные параметры? 20:57:14 From Sergey Olisov : s 20:57:15 From denis : s 20:57:21 From denis : s =0 20:58:01 From Vyacheslav.Sitnikov : а почему нельзя передать дополнительные параметры после myVariable... ? Нарпимер: func myFunc(aaa []string) { fmt.Println(aaa) } myFunc("test1", "test2") - ок data := []string{"test1", "test2"} myFunc(data...) - ok myFunc(data..., "test3) - не ok 20:58:39 From Vyacheslav.Sitnikov : а никак, просто добавлять и всё 20:58:44 From denis : Типом? 20:59:06 From Vyacheslav.Sitnikov : последние параметры пусть всегда будут одного типа 21:00:15 From iPhone (Alexey) : понял 21:00:49 From Vyacheslav.Sitnikov : просто a 21:01:19 From Dmitry : преобразовать тип 21:01:34 From Dmitry : .(string) 21:01:40 From Dmitry : 7 21:05:38 From Dmitry : - 21:05:40 From Dmitriy Tselinko : - 21:05:42 From Denis Kolpakov : нет вопросов 21:05:54 From Mikhail : - 21:05:54 From Nikolay : вопросов нет 21:06:23 From Vyacheslav.Sitnikov : первый раз вижу столько людей и чтобы ни у кого про замыкания вопросов не возникло... 21:06:55 From Dmitry Pavlov : Все на js писали) 21:07:29 From denis : Замыкающая функция не принимает результатов 21:08:56 From andrey : круто 21:08:57 From denis : Круто 21:09:03 From v.telyatnikov@xsolla.com : ништяк! 21:09:19 From Vyacheslav.Sitnikov : сккиньше ссылку с плейграунда 21:09:26 From Vyacheslav.Sitnikov : *скиньте 21:10:04 From Отус : https://play.golang.org/p/wqVa-zDvxwz 21:10:18 From Отус : https://blog.gopheracademy.com/recursion/ Go 2? https://github.com/golang/go/issues/22624 21:11:07 From Mike Deruygin : прикольно) 21:11:14 From denis : не понял 21:11:17 From Vyacheslav.Sitnikov : ещё раз плз 21:11:28 From Mike Deruygin : а как их потом приводить надо в случае чего?) 21:13:11 From denis : то есть у переменной такой тип? 21:13:12 From Vyacheslav.Sitnikov : + 21:13:18 From denis : Понял 21:14:48 From Dmitry Pavlov : Не обязательно структуры) 21:15:39 From Vyacheslav.Sitnikov : Если метод начинается с большой быквы - будет экспортироваться 21:15:46 From Vyacheslav.Sitnikov : *буквы 21:18:47 From denis : - 21:19:27 From Mikhail : 3 21:19:28 From denis : 4 4 4 21:19:28 From andrey : 4 21:19:28 From Denis Kolpakov : 4 21:19:29 From andrey : 4 21:19:29 From andrey : 4 21:19:29 From andrey : 4 21:19:31 From Mike Deruygin : 444 21:20:50 From Mike Deruygin : + 21:20:50 From Eugene Klimov : будет ошибка 21:20:52 From andrey : структура содержит ссылки 21:20:54 From andrey : да будет 21:20:59 From Vyacheslav.Sitnikov : не должно, но судя по тону есть нюанс 21:21:04 From Denis Kolpakov : нет 21:22:34 From iPhone (Alexey) : fmt нет 21:22:46 From Vyacheslav.Sitnikov : а вот так должно 21:23:19 From Григорий Заводов : но append не пройдёт 21:23:23 From denis : капасити изменилось 21:23:36 From Vyacheslav.Sitnikov : потому что это ругой слайс 21:23:54 From andrey : у нас это было на прошлом уроке 21:24:11 From Григорий Заводов : объясняли уже 21:24:12 From iPhone (Alexey) : не понятно 21:24:18 From andrey : понятно 21:24:49 From denis : На этом коде наглядно: 21:24:50 From iPhone (Alexey) : да 21:24:51 From denis : package main import ( "fmt" ) func main() { arr := []int{1} for i := 0; i < 100; i++ { fmt.Printf("len: %d \tcap %d \tptr %0x\n", len(arr), cap(arr), &arr[0]) arr = append(arr, i) } } 21:25:10 From Vyacheslav.Sitnikov : сапасити увеличить 21:25:50 From Vyacheslav.Sitnikov : через make 21:29:54 From Vyacheslav.Sitnikov : а как вернуть не просто ошибку, а трейс со стеком функций? 21:31:34 From Vyacheslav.Sitnikov : спс 21:31:44 From Denis Kolpakov : вот, в 1.13 вроде какой-то нативный механизм ввели для такого. не успел разобраться 21:32:04 From Vyacheslav.Sitnikov : да, давайте про wrapper 21:33:24 From Vyacheslav.Sitnikov : как не копались? Недели три как релизнулся 1.13 :) 21:36:13 From Dmitry : - 21:36:14 From denis : - 21:36:16 From Dmitriy Tselinko : - 21:36:16 From iPhone (Alexey) : - 21:36:17 From volk : - 21:36:17 From Vyacheslav.Sitnikov : - 21:36:19 From Mikhail : - 21:36:19 From Nikolay : - 21:36:19 From Denis Kolpakov : - 21:38:13 From Denis Kolpakov : нет 21:38:14 From iPhone (Alexey) : + 21:38:15 From Vyacheslav.Sitnikov : я даже прочитать не успел 21:38:18 From denis : file.Close() в конце метода.. стоит ли проверить ошибку? 21:38:41 From Григорий Заводов : если выкидываем вверх, то не логируем? 21:38:59 From Vyacheslav.Sitnikov : понятно 21:39:02 From Григорий Заводов : чтобы не пухли логи 21:39:05 From iPhone (Alexey) : все ясно 21:39:07 From Nikolay : тогда хорошо бы стектрейс прокинуть 21:39:30 From denis : а если defer file.Close() ка проверить? 21:39:38 From Vyacheslav.Sitnikov : покажите в плейграунде 21:41:53 From Nikolay : спасибо 21:42:17 From Vyacheslav.Sitnikov : defer func() { _ = conn.Close() }() 21:45:45 From denis : А на слайде defer file.Close() без обработки ошибки)) 21:46:27 From Vyacheslav.Sitnikov : так из области видимости или из функции? 21:46:55 From Vyacheslav.Sitnikov : да 21:48:16 From Vyacheslav.Sitnikov : а если указатель? :) 21:48:38 From Denis Kolpakov : 1 21:48:50 From iPhone (Alexey) : 1 21:50:22 From Mike Deruygin : слишком умно. мало наглядно 21:51:02 From Mike Deruygin : нет, я имею в виду, что если так писать, то будет сложно потом разбираться с этим)) 21:51:36 From Vyacheslav.Sitnikov : а если i:= 2 21:52:27 From denis : Если именованный, то как работает return… не понял 21:54:46 From denis : Понял 21:55:01 From denis : Надеюсь такого в продакшн коде не будет 21:56:27 From Vyacheslav.Sitnikov : и как оно восстанавливает? 21:56:34 From Vyacheslav.Sitnikov : продолжить нельзя ж 21:56:44 From Vyacheslav.Sitnikov : да ладно... 21:57:07 From Vyacheslav.Sitnikov : пример можно, когда есть продолжжение кода ПОСЛЕ вызова panic ? 21:57:25 From Mike Deruygin : и recover тоже было бы весьма полезно 21:58:06 From Vyacheslav.Sitnikov : это не то, после defer код не выполняется, это завершение 21:58:18 From denis : defer - очень похож на catch) 21:58:57 From Denis Kolpakov : паника внутри рекавера) брр) 21:58:58 From Vyacheslav.Sitnikov : lalala... panic() blablabla... как выполнить blablabla ? 21:59:29 From Vyacheslav.Sitnikov : если никак, то это ни разу не catch 22:03:34 From Vyacheslav.Sitnikov : https://play.golang.org/p/IpOZGCW9rpl и как прехватить panic, чтобы увидеть After panic ? 22:04:15 From Vyacheslav.Sitnikov : вот и я про то же 22:04:29 From Vyacheslav.Sitnikov : да нет аналогов :) 22:04:36 From iPhone (Alexey) : finalize 22:04:56 From iPhone (Alexey) : спасибо 22:05:10 From Григорий Заводов : паниковать или не паниковать? ) 22:05:15 From Nikolay : Спасибо, лекция получилось большая , хотелось бы чтобы на будущее такие лекции разделяли. 22:05:21 From denis : Dont panic! 22:06:24 From volk : спасибо огромное, было очень интересно!) 22:06:27 From Dmitry : Спасибо за лекцию! 22:06:28 From Mike Deruygin : спасибо большое, жутко было интересно 22:06:34 From Ivan Lemeshev : спасиоб 22:06:37 From Vyacheslav.Sitnikov : презенташку к уроку приложите :) 22:06:39 From Отус : https://otus.ru/polls/4895/ 22:06:45 From denis : Спасибо за лекцию, привет Жене - пусть не ругает! 22:07:00 From Ivan Ivanov : спасибо, теперь надо все осознать и переварить) хорошая лекция 22:07:11 From Nikolay : спасибо