Alexey
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
Serkov
У тебя же код и не объявление переменно и не тело функции
A
спасибо!
а вне тела функции нельзя?)) я думал как в c++))
Serkov
Ну ты можешь объединить 5 и 6 строку
Emin Zalaev
Andrey
Emin Zalaev
Тем более когда стоит такая ОС
Sebor▂▅▇█▓▒░
Обоих вас отчислить за такое" первого за подсказки, второго за то, что даже с подсказками не может 😏
Emin Zalaev
Я ему сказал в конце ретурн 0 добавить, вот и он добавил
Andrey
Я даже не знаю, где такие программы дают, а уж тем более на экзамене.
Sebor▂▅▇█▓▒░
Ну тут не ясно, какое вообще условие было у задачи
Sebor▂▅▇█▓▒░
А так у нас на первом курсе над было на паскале написать прогу вычисления площади треугольника.
На листочке, конечно же
И это один из топовых вузов страны 🙂
Sa
Andrey
Sebor▂▅▇█▓▒░
Ну на отлично, скорее всего да 😏
Eugene
Чятик. Так уж случилось, что меня сломили и я буду писать на го ) может кто-то посоветовать хорошую книгу по тому, как человеку привыкшему в ооп, типичным классам и тп писать на го по нормальному?
Emin Zalaev
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
И почему, ты решил что она его не видит?
Vladislav
Danil
А если сделать tidy по он чистит go mod файл
Sebor▂▅▇█▓▒░
Илья
Илья
Так тебе нужен sqlite или mysql?
Sa
kostyaBro
kostyaBro
Считай что встраивание это наследование и модешь считать что go ООП
kostyaBro
Почти вредные советы
Sanity = nil
Sanity = nil
и как наследование то делать😐
Akim
Гошка позволяет писать в ООП есть постараться.
С отличиями:
вместо наследования композиция.
абстракция это структуры
инкапсуляция есть
полиморфизм достигается через интерфейсы и дженерики
Sanity = nil
Да, но зачем?
Akim
по сути основное отличие наследование -> композиция. такой же подход используется в react. сами разработчики в react считают что нет кейсов наследования, которые нельзя заменить композицией
Akim
Да, но зачем?
если посмотреть не со стороны классов, интерфейсов и т.д., а более абстрактно, то ооп это стандарт для структурирования программы. игнорируя принципы ооп ничего хорошего не выйдет
Sanity = nil
😐
kostyaBro
kostyaBro
Вообще в можно найти всякий софт в котором глубина наследования жуть какая. И разобраться в этом ещё та боль.
Akim
Если взять что то удачное и это допустим сложный проект по биологии, который описывает огромной глубины наследование от бактерии до человека условно в 10 связей, то... мне кажется такой подход довольно удачный.
без него было бы разобраться труднее в массиве из произвольных json данных например
Sanity = nil
A
Помогите плз разобраться. https://go.dev/tour/concurrency/6
В примере, получается, что конструкция default срабатывает максимум по 2-3 раза в 100ms ?
Как-то медленно получается, или не так понимаю?
Akim
Akim
В го такое делается довольно изящно через embedding
Akim
https://go.dev/doc/effective_go#embedding
Я конечно об этом узнал совсем недавно и не юзал, но выглядит как альтернатива сабклассам
Andrey
an112
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
ну выше вон предлагали передавать канал в ф