Ruslan
"Это фича"
это DSL синтаксис
Ivansuper
это DSL синтаксис
Я не оригинальный автор этого ответа, так что я просто поддержал человека
Ivansuper
Но за вариант объяснения спасибо
Doston
с практический точки зрения такой код вызывает рябь в глазах и непонимание почему это так
согласитесь, первый вариант намного красивее, и читабельнее. Но у каждого свой вкус!
Mike
...и работает по-разному, и имеет свои + и -
Doston
это с 1 аргументом, попробуй с 2
вы имеете ввиду вместо onClick() использовать метод с двумя аргументами?
Konstantin
линт подсветит что лямбду из последнего аргумента лучше вынести за скобку
Konstantin
snackbar.setaction
Кирилл
...и работает по-разному, и имеет свои + и -
Почему? Разве там не идёт автогенерация объекта-наследника?
Кирилл
где автогенерация чьего наследника?)
При вызове setOnClickListener { ... } котлин же сам генерирует необходимую лямбду, я не прав?
Mike
При вызове setOnClickListener { ... } котлин же сам генерирует необходимую лямбду, я не прав?
Что значит «генерирует необходимую лямбду»? Лямбду ты сам пишешь в коде.
Кирилл
Что значит «генерирует необходимую лямбду»? Лямбду ты сам пишешь в коде.
Ладно, да, я не правильно выразился. Отвлекают тут, вот и пишу ахинею. Я имел ввиду, что разве в итоге не работает одинаково? Создаёшь лямбду, она потом вызывается в сгенерированном внутри методе onClick
Mike
Ладно, да, я не правильно выразился. Отвлекают тут, вот и пишу ахинею. Я имел ввиду, что разве в итоге не работает одинаково? Создаёшь лямбду, она потом вызывается в сгенерированном внутри методе onClick
Работает очень похоже, но лямбды не гарантируют identity: у них нет this и они могут внезамно стать синглтонами. object expression же создаёт новый объект каждый раз.
Doston
линт подсветит что лямбду из последнего аргумента лучше вынести за скобку
можно != объязательно. тут уже каждый сам решает, как ему удобно. Вот например 3 варианта.
Andrei
Всем привет. Подскажите, может кто сталкивался. На некоторых телефонах открывается английская раскладка, когда что-нибудь вводим, а нужна русская. Как-то можно на это повлиять?
Mike
можно != объязательно. тут уже каждый сам решает, как ему удобно. Вот например 3 варианта.
называть параметр словом lambda? а если туда не лямбду передать? :trollface:
Mike
> внезапно могут стать синглтонами Это как? (О.о)
если лямбда ничего не захватывает, экземпляр класса будет один, типа fun x() = { 10 } ... assertSame(x(), x())
Doston
называть параметр словом lambda? а если туда не лямбду передать? :trollface:
Для наглядного примера, на быструю руку написал))
Mike
это точно фича
Konstantin
обращение к глобальным переменным считается захватом?
Кирилл
если лямбда ничего не захватывает, экземпляр класса будет один, типа fun x() = { 10 } ... assertSame(x(), x())
Всё равно что-то не понимаю... Можно чуть подобнее, пожалуйста?😅
Konstantin
к полям класса? да
не так выразился, к константам если обращаюсь например на чтение? к полям класса - ожидаемо что нужно тащить за собой объект
Sergey
Ребятки. Написал пару непростых приложений на Xamarin,пару на Kotlin. Джаву естественно изза необходимости гуглить и знания шарпа и котлина тоже понимаю. Нужно как-то по этмм знаниям с нуля андройд разобрать. А то пишу "как умею", а хочетсч полностью все понимать. На чем остановиться? Книгу какую-нибудь бы. Чем современнее, тем лучше. А если еще с котлин примерами, вообще золото, но вряд ли чтото успело стать классикой с котлином
Mike
Всё равно что-то не понимаю... Можно чуть подобнее, пожалуйста?😅
Что именно? Само понятие захвата? Синглтона? Или что-то ещё я упустил?
Кирилл
Что именно? Само понятие захвата? Синглтона? Или что-то ещё я упустил?
Я понимаю и то, и другое.) Но не понимаю, каким образом лямбда превращается в синглтон и чем это сулит
Mike
Я понимаю и то, и другое.) Но не понимаю, каким образом лямбда превращается в синглтон и чем это сулит
Превращается усилиями компилятора, он старается не создавать лишних объектов. Сулит это меньшей нагрузкой на GC, что круто; object expressions так не могут.
Nikita
Разве лямбда превращается в синглтон? Там вроде только констуктор не вызывается
Кирилл
была статейка на хабре )
И как её гуглить? "Из лябмды в синглтон"?😅
Nikita
> констуктор не вызывается эт как?
Сорян, инстанс анонимного класса не создается
Сергій
но автор сам виноват, из-за незнания инструмента
Mike
там о другом, кстати — это проблема SAM
Кирилл
https://habr.com/post/342460/
О, спасибо.)
Anonymous
Как убрать эту тень из ActionBar?
Kotor
https://www.xda-developers.com/user-data-leak-misconfigured-firebase-backends/amp/
gio
Открыт фрагмент, приходит пуш, как сообщение из пуша получить во фрагменте, чтобы показать? Подскажите плиз
⁣𝓔𝓿𝓰𝓮𝓷𝔂 𝓜.
Всем привет! Кто на пиво хочет заработать?
Tishka17
Пиво это хорошо
⁣𝓔𝓿𝓰𝓮𝓷𝔂 𝓜.
Мне календарик смен надо сделать для личного пользования
⁣𝓔𝓿𝓰𝓮𝓷𝔂 𝓜.
изыдь
Зачем грубишь?
Mike
Зачем грубишь?
зачем ты нетематические сообщения пишешь?
Ivansuper
Предложение работы в соседнем канале
Ivansuper
Зайди в шапку чата, там будет ссылка на чат вакансий. Вот тебе туда, поищи там народ
Ivansuper
Была бы потрясающая, я бы в сообщении написал ID чата кликабельное (только тсс)
⁣𝓔𝓿𝓰𝓮𝓷𝔂 𝓜.
Ivansuper
Иди туда и не нагнетай
Ivansuper
Он прав — ты вообще мимо темы пишешь
Nick Senchurin
а ничего так чатик разросся ) уже 4к людишек, только андройд только хардкор 💪
Mike
*андроид
Сергій
**андройид 🌝
Ivansuper
**андройид 🌝
Бить. Больно.
Nick Senchurin
а кто-нибудь вебсокеты готовил на андройде?
Nick Senchurin
я просто понял, что текущая моя реализация через бинд сервиса какая-то корявая, вот думаю может в апп классе все инициализировать , а отписываться через Application.ActivityLifecycleCallbacks ?
Nick Senchurin
=) кнопка на клаве поломалась?
Сергій
🌚
Nick Senchurin
ну в общем интересует в каком месте закрывать вебсокеты
Ivansuper
Ребят, возьмите свою речь, и скажите Андроид на английском вслух. Вы чувствуете присутствие "й" там? Вряд ли. Вопрос снят
Nick Senchurin
когда я закрыл последнюю активити например
Сергій
когда я закрыл последнюю активити например
когда пользователь свернул приложение
Nick Senchurin
тоже не нужен