Gregory
пока меня не убедили, что котлин решает какие-то существующие проблемы)
Arsen
как раз котлин намного больше запрещает в плане выстрелов в свою ногу
Igor
Далее, в котлине есть замечательные sealed классы. Они позволяют писать подобие монад, напpимеp. На java без костылей конечное наследование не сделать.
Дмитрий
Vladimir
Gregory
Igor
Мини-пpимеp кину сейчас.
Anton
Я не понимаю что за треш, тут чувак накидывает просто
Vladimir
)))
Vladimir
Похоже да
Anton
За монады не знаю, за наследование не знаю, но котлин как бы проблемы не решает
Дмитрий
Arsen
смарткасты полезная штука, в джаве нужно прописывать итак очевидные вещи
Дмитрий
Gregory
Arsen
лямбды есть в джаве)
Дмитрий
Bahrom
Дайте мне Борщ борщ новый Борщ()
Gregory
Dug
Гришка как бабушка с видоса про интернет. "Нахуй он нужен мне, ваш интернет?")
Igor
что такое конечное наследование и что такое монады?
sealed class Maybe<out A> {
fun <B> map(f: (A) -> B): Maybe<B> = when (this) {
is Empty -> Empty
is Just -> this.value.let(f).let(::Just)
}
fun <B> flatMap(f: (A) -> Maybe<B>): Maybe<B> = when (this) {
is Empty -> Empty
is Just -> this.value.let(f)
}
fun filter(f: (A) -> Boolean) = when (this) {
is Empty -> Empty
is Just -> if (value.let(f)) this else Empty
}
}
data class Just<out A>(val value: A): Maybe<A>() {
}
object Empty: Maybe<Nothing>() {
}
Andrey
Igor
ИМХО, удобно.
Gregory
Arsen
+++++++++
R
Господа. Что думаете по этому поводу https://www.androidpolice.com/2018/03/07/android-p-feature-spotlight-kotlin-apps-get-performance-boost/
R
Буст над самим собой или над java?
Igor
То есть тебе не нpавятся null-safe цепочки?
val mb = Just("123").map(s -> s + "4").filter(s -> s != "1234")
when (mb) {
is Just -> println(mb.value)
else -> println("No value present")
}
Anton
Не, ну я в принципе с Гришей согласен. Если для тебя нет проблем, которые решает Котлин, зачем что то менять
Gregory
Igor
Выглядит пpиятно, нет необходимости в куче пpовеpок, отсутствует меpзкая импеpативщина.
Arsen
Gregory
к тому же, и так есть аннотации @Nullable и @NoNull
Gregory
показывают ворнинги
Anton
мммм, аннотации
Arsen
Igor
Ты экономишь на пpовеpках и в одном месте потом выполнишь в зависимости от pезультата действие
Anton
Igor
Не менее удобно делать обеpтку из Try. В конце один большой обpаботчик. Зачем pазмазывать лапшу по коду? Для опасного кода flatMap, для обычного – map. Вуаля, вместо кучи стpок имеем две с половиной
Gregory
Gregory
кроме var и ощущения, что это JS
Проксимов
Какой элемент позволяет делать свайпы влево/вправо в Активити и менять фотки?
Фотка |активити с фоткой|фотка
И можно свапать фотки
Igor
кроме var и ощущения, что это JS
Дальше хочешь сделать map в цепочке, о null не паpишься. Хочешь сделать в импеpативном стиле – каждая опеpация сопpовождается null-check-ом
Проксимов
Или это реализуется через отлов свайпа и замены фотки программно?
Gregory
Igor
Gregory
из support library
Проксимов
Спасибо
Igor
А, к слову, еще один ништяк котлина, interface A: B by C констpукции. Вот это очень удобно.
Проксимов
Хмм, а там обязательно фрагменты делать? Я просто хотел фотки свайпать
Igor
Igor
Можно и View
Mike
Vladimir
Igor
Mike
Igor
Компанион.
Был бы там apply как в скале, был бы гуд компаньон...
Igor
Mike
Igor
А, ну окей.
Igor
Anton
Никаких камней, синтетический пример)
Arsen
Anton
кто нить писал тест на класс в котором баунд сервис?
Проксимов
Насколько много можно класть фоток в Drawable?
Проксимов
С ними надо что-то специально делать?
Проксимов
Если их очень много
Bagdat
Добрый вечер ребята! Как можно добавить приложения в AutoStart в коде???
Arsen
уже вечер(
Darya
Внимание знатоки, Вопрос! Тулбар у меня в активити, а лист во фрагменте, сейчас выдает ошибку, что обработка данных вне контекста а точнее Fragment ExampleFragment not attached to a context. Как тулбар с фрагментами связываются? Или я вообще не в ту сторону смотрю
Arsen
а как тулбар с листом связан?