Size: a a a

StartAndroid Ru Kotlin

2020 January 11

SH

Sergey Hottabych in StartAndroid Ru Kotlin
Объясните, зачем нужен let? Я очень долго вчитывался в доки, но так и не понял.
источник

AA

Artyom Afanasiev in StartAndroid Ru Kotlin
Sergey Hottabych
Объясните, зачем нужен let? Я очень долго вчитывался в доки, но так и не понял.
Функция, которая как параметр принимает лямбду, у которой в качестве параметра идёт объект, к которому сама функция let и применялась, и из лямбды можно вернуть другой тип
источник

DS

Dmitry Smith in StartAndroid Ru Kotlin
Sergey Hottabych
Объясните, зачем нужен let? Я очень долго вчитывался в доки, но так и не понял.
источник

K

Kirill in StartAndroid Ru Kotlin
чет понятнее не стало, also же вообще для обмена значениями
источник

SH

Sergey Hottabych in StartAndroid Ru Kotlin
Artyom Afanasiev
Функция, которая как параметр принимает лямбду, у которой в качестве параметра идёт объект, к которому сама функция let и применялась, и из лямбды можно вернуть другой тип
В общем, я ещё покопал и понял так, что она реально нужна только для превращения val? типа в non-nullable
источник

K

Kirill in StartAndroid Ru Kotlin
еще такой вопрос, а почему lateinit не работает с типом Int ?
источник

AA

Artyom Afanasiev in StartAndroid Ru Kotlin
Sergey Hottabych
В общем, я ещё покопал и понял так, что она реально нужна только для превращения val? типа в non-nullable
Нет, возможностей применения масса, просто объяснить сложно, потому что понимаешь смысл подобных возможностей котлин только в процессе написания реального проекта
источник

AA

Artyom Afanasiev in StartAndroid Ru Kotlin
Kirill
еще такой вопрос, а почему lateinit не работает с типом Int ?
Для примитивов нельзя применять lateinit
источник

AA

Artyom Afanasiev in StartAndroid Ru Kotlin
Poul KOsten
Народ ,  кто нибудь может помочь с ситуацией - есть viewModel там есть liveData так же есть некий репозиторий где сервис время от времени присылает системыне сообщения - надо как то подписаться на эти сообщения и передать во viewModel нагуглить что надо не выходит

может пару примеров кто может скинуть простых?

тоесть надо создать триггер для этой лайвдаты
Что имеется ввиду, когда говоришь, что сервис присылает сообщения время от времени?
По идее, ты во viewModel должен дергать метод репозитория и результат писать в livedata
источник

PK

Poul KOsten in StartAndroid Ru Kotlin
Так что бы не дёргать надо как то подписаться на входящие сообщения же?
источник

PK

Poul KOsten in StartAndroid Ru Kotlin
Или я не совсем тогда знаю как работает liveData
источник

AA

Artyom Afanasiev in StartAndroid Ru Kotlin
Poul KOsten
Так что бы не дёргать надо как то подписаться на входящие сообщения же?
Что за сообщения то? Что имеешь ввиду под сервисом? Сервис как компонент андроида или вебсервис?
источник

PK

Poul KOsten in StartAndroid Ru Kotlin
Нет вроде этого чата
источник

PK

Poul KOsten in StartAndroid Ru Kotlin
Телеграм так же работает
источник

PK

Poul KOsten in StartAndroid Ru Kotlin
1 в 1
источник

AA

Artyom Afanasiev in StartAndroid Ru Kotlin
Poul KOsten
Телеграм так же работает
Если не ошибаюсь, телеграмм работает на FCM
источник

K

Kirill in StartAndroid Ru Kotlin
Sergey Hottabych
В общем, я ещё покопал и понял так, что она реально нужна только для превращения val? типа в non-nullable
источник

AA

Artyom Afanasiev in StartAndroid Ru Kotlin
Это одна из возможностей применения, но не ключевая
Так же можно на null проверять и с помощью also
источник
2020 January 12

IS

Ilya Shikakov in StartAndroid Ru Kotlin
Poul KOsten
Народ ,  кто нибудь может помочь с ситуацией - есть viewModel там есть liveData так же есть некий репозиторий где сервис время от времени присылает системыне сообщения - надо как то подписаться на эти сообщения и передать во viewModel нагуглить что надо не выходит

может пару примеров кто может скинуть простых?

тоесть надо создать триггер для этой лайвдаты
Насколько я понял суть твоей проблемы, ты не можешь полученные данные передать в лайв, которая находится во вьюМодели, просто лайв перенеси в репу и там обновляй её содержимое. А во вьюМодели просто организуй метод, который просто запрашивает первый раз эту лайв у репо и отдавай ссылку на неё активити/фрагменту.
источник

IS

Ilya Shikakov in StartAndroid Ru Kotlin
И ещё учти, что, если в лайв у тебя содержимым является список, то при добавлении в него новых элементов, обсерверы не будут уведомлены об изменениях, тут только саму ссылку на список обновлять(например, из лайв достать список, добавить в него элементы и передать  эту же ссылку в лайв, как будто новый список даём ему)
источник