Vladislav
@banofbot
Banof
🔫 14. Brushes Kij кикнут — вернуть этого пользователя можно только разбаном в настройках чата. За кик проголосовали: @b_t_i, @Im_always_in_my_best, Александр Чемерис, @thelissimus, @ksean42 Информация по переезду из 🇺🇦 в 🇨🇦
A
подскажите плз, в чем ошибка? 2 стрчки кода..
A
https://go.dev/play/p/NfCz-JR2vko
Serkov
подскажите плз, в чем ошибка? 2 стрчки кода..
А зачем ты так делаешь на 6 строке?
Serkov
У тебя же код и не объявление переменно и не тело функции
A
спасибо! а вне тела функции нельзя?)) я думал как в c++))
Serkov
Ну ты можешь объединить 5 и 6 строку
Andrey
спасибо! а вне тела функции нельзя?)) я думал как в c++))
Такого и в с++ вроде как нельзя. Ты же не просто инициализируешь переменную, а прям работаешь с ней
Andrey
Фу, фото монитора 😂
Emin Zalaev
Фу, фото монитора 😂
С универского компа не закринишь в 2018 году
Emin Zalaev
Тем более когда стоит такая ОС
Andrey
С универского компа не закринишь в 2018 году
Только ты дружок проебался вроде, и ретурном не попал)
Emin Zalaev
Только ты дружок проебался вроде, и ретурном не попал)
Эт не я)) я то тогда такое не писал. Это я по наушнику корешу на экзе диктовал
Sebor▂▅▇█▓▒░
Обоих вас отчислить за такое" первого за подсказки, второго за то, что даже с подсказками не может 😏
Emin Zalaev
Я ему сказал в конце ретурн 0 добавить, вот и он добавил
Andrey
Я даже не знаю, где такие программы дают, а уж тем более на экзамене.
Sebor▂▅▇█▓▒░
Ну тут не ясно, какое вообще условие было у задачи
Sebor▂▅▇█▓▒░
А так у нас на первом курсе над было на паскале написать прогу вычисления площади треугольника. На листочке, конечно же И это один из топовых вузов страны 🙂
Emin Zalaev
Я даже не знаю, где такие программы дают, а уж тем более на экзамене.
Там не такую программу давали, просто дали вопрос по теории чтобы человеку хотя бы 3 поставить, тот не смог ответить, ему предложили написать код и проверить
Sebor▂▅▇█▓▒░
Ты забыл, что там ещё наличие блок схемы обязательно
Вот этого уже точно не вспомню, насколько обязательно
Sebor▂▅▇█▓▒░
Ну на отлично, скорее всего да 😏
Eugene
Чятик. Так уж случилось, что меня сломили и я буду писать на го ) может кто-то посоветовать хорошую книгу по тому, как человеку привыкшему в ооп, типичным классам и тп писать на го по нормальному?
Danil
Всем привет, помогите плз разобраться в чем проблема. Пытаюсь поставить gorm http://joxi.ru/82QJO15T8PVNZA но ide его не видит
Danil
что я делаю не так или как загуглить правильно
Andrey
А ты сюда сам написал пакеты или как? И может ещё стоит гошку обновить(ну это так, опционально)
Danil
не писал через go get -u gorm.io/gorm go get -u gorm.io/driver/sqlite
Andrey
Сделай go mod tidy
Andrey
И почему, ты решил что она его не видит?
Danil
И почему, ты решил что она его не видит?
Вот почему http://joxi.ru/gmvMbDgSepdDLr
Danil
А если сделать tidy по он чистит go mod файл
Eugene
Эт ты так скрываешь, что ты латентный жабист? 😏
Я просто хочу как можно скорее адаптироваться)
Илья
Так тебе нужен sqlite или mysql?
Sa
Еще бы хост засветил
kostyaBro
Чятик. Так уж случилось, что меня сломили и я буду писать на го ) может кто-то посоветовать хорошую книгу по тому, как человеку привыкшему в ооп, типичным классам и тп писать на го по нормальному?
Описываешь структурку func NewНазваниеСтруктуры( * ) *НазваниеСтруктуры { * } считай конструктор (s *НазваниеСтруктуры) Close() error { *** } считай деструктор
kostyaBro
Считай что встраивание это наследование и модешь считать что go ООП
kostyaBro
Почти вредные советы
Sanity = nil
и как наследование то делать😐
Grigorij
и как наследование то делать😐
Считай что встраивание это наследование
Akim
Гошка позволяет писать в ООП есть постараться. С отличиями: вместо наследования композиция. абстракция это структуры инкапсуляция есть полиморфизм достигается через интерфейсы и дженерики
Sanity = nil
Да, но зачем?
Akim
по сути основное отличие наследование -> композиция. такой же подход используется в react. сами разработчики в react считают что нет кейсов наследования, которые нельзя заменить композицией
Akim
Да, но зачем?
если посмотреть не со стороны классов, интерфейсов и т.д., а более абстрактно, то ооп это стандарт для структурирования программы. игнорируя принципы ооп ничего хорошего не выйдет
Sanity = nil
😐
kostyaBro
Да, но зачем?
Удобно ж
kostyaBro
Вообще в можно найти всякий софт в котором глубина наследования жуть какая. И разобраться в этом ещё та боль.
Akim
Если взять что то удачное и это допустим сложный проект по биологии, который описывает огромной глубины наследование от бактерии до человека условно в 10 связей, то... мне кажется такой подход довольно удачный. без него было бы разобраться труднее в массиве из произвольных json данных например
Serkov
такое будут писать на го?
Как по мне такое на функциональном языке пишется намного легче и проще
A
Помогите плз разобраться. https://go.dev/tour/concurrency/6 В примере, получается, что конструкция default срабатывает максимум по 2-3 раза в 100ms ? Как-то медленно получается, или не так понимаю?
Akim
В го такое делается довольно изящно через embedding
Akim
https://go.dev/doc/effective_go#embedding Я конечно об этом узнал совсем недавно и не юзал, но выглядит как альтернатива сабклассам
A
седая моя голова... как не заметил...)) спасибо
A
Переписал немного этот код таким образом: https://go.dev/play/p/wX00FWsGaVX Хотелось бы сделать так, чтобы функция f() писала что-то в канал, и этот канал читала основная горутина. но при это объявлять глобальный канал не хочется. Можно ли сделать так, что функция f будет возвращать канал, из которого можно будет читать внутри функции main?
Юра (Юрий Александрович)
Переписал немного этот код таким образом: https://go.dev/play/p/wX00FWsGaVX Хотелось бы сделать так, чтобы функция f() писала что-то в канал, и этот канал читала основная горутина. но при это объявлять глобальный канал не хочется. Можно ли сделать так, что функция f будет возвращать канал, из которого можно будет читать внутри функции main?
Нужно передать уже открытый канал в функцию, и пусть в него пишет. Можно сделать, что функция вернет канал, но тогда читать из него можно будет только тогда, когда функция завершится. Либо нужно делать "прокси-функцию", которая создаст канал, вернет его читателю, передаст его писателю и создаст функцию, которая дождется завершения функции-писателя и закроет канал.
Юра (Юрий Александрович)
Глобальных каналов быть не должно, а вот замыкание для этого использовать можно.
Grigorij
но можно же и чтобы ф возвращала?
Юра (Юрий Александрович)
можно и чтобы возвращала, можно и чтобы принимала...
Юра (Юрий Александрович)
Тут нужно сразу определиться, стремимся ли мы в данном случае придерживаться принципа "кто канал создал, тот его и закрывает".
A
Тут нужно сразу определиться, стремимся ли мы в данном случае придерживаться принципа "кто канал создал, тот его и закрывает".
мне кажется это правильный подход. т.к. если надеяться на другого, его могут и не закрыть..
A
А можно пожалуйста пример?
A
или где можно примеры посмотреть?
Юра (Юрий Александрович)
🤷‍♂️ не знаю, я систему переустанавливаю...
A
По сути, встроенный таймер работает нужным мне образом. У него есть свойств .C из которого при необходимости можно читать.
Grigorij
в чём сложность? тебе там только надо доделать так, чтобы ф могла писать но при исполнении не останавливаться, а отдать канал из которого надо в майне читать на сколько я понял
A
Тогда, запуск горутины мне нужно сделать внутри функции f. Чтобы не блокировать функцию, и сразу вернуть канал.
A
А это не хорошо, т.к. клиентский код должен определять, запускать f в горутине или нет.
Grigorij
ну выше вон предлагали передавать канал в ф