Size: a a a

Kotlin Community

2020 April 14

VP

Vladimir Petrakovich in Kotlin Community
Nikita Yatskivskiy
Я имел ввиду отличия от обычного @Experimental. Они же по-разному себя ведут. По крайней мере, если ориентироваться на инспекции в студии 😅
Если плагин старый, он может не знать про OptIn.
"Обычный" @Experimental должен вести себя примерно как @RequiresOptIn. Всё.
И про него можно забыть, нет его больше, он заменён и будет выпилен в дальнейшем.
источник

AD

Aleksey D. in Kotlin Community
привет! что может заставлять Kotlin Compiler ругаться?
https://pl.kotl.in/Ozm_lEiiv
источник

AN

Alexander Nozik in Kotlin Community
Aleksey D.
привет! что может заставлять Kotlin Compiler ругаться?
https://pl.kotl.in/Ozm_lEiiv
у меня не ругается
источник

AN

Alexander Nozik in Kotlin Community
а, в смысле при запуске? Ну очевидно на то, что presenter неиницилизирвоан
источник

AD

Aleksey D. in Kotlin Community
Alexander Nozik
у меня не ругается
а у меня на проекте ругается 🌚 но там только lateinit переменная и обращение к ней из лямбды
источник

AN

Alexander Nozik in Kotlin Community
Aleksey D.
а у меня на проекте ругается 🌚 но там только lateinit переменная и обращение к ней из лямбды
а там не FeaturePresenter??
источник

AN

Alexander Nozik in Kotlin Community
если вопросик есть, то будет ругаться на тип
источник

AD

Aleksey D. in Kotlin Community
Alexander Nozik
а там не FeaturePresenter??
в том-то и дело, что тогда он не даст его lateinit пометить и это заметит среда. а так среда не подчеркивает ничего - только компилятор ругается
источник

AN

Alexander Nozik in Kotlin Community
Aleksey D.
в том-то и дело, что тогда он не даст его lateinit пометить и это заметит среда. а так среда не подчеркивает ничего - только компилятор ругается
Странно, проверьте, что у вас конфликта имен нигде нет и это одна и та же переменная
источник

AD

Aleksey D. in Kotlin Community
Alexander Nozik
Странно, проверьте, что у вас конфликта имен нигде нет и это одна и та же переменная
о, это именно он и был, спасибо!
источник

КР

Кирилл Романенко in Kotlin Community
Подскажите пожалуйста, как провернуть такой трюк
class Foo<A : Any, out B>(val block: (A) -> B)

fun main() {
   val foo = Foo<Int, String> { it.toString() }
   val bar: Foo<Any, String> = foo // error
}


Если делаю out A, тогда проблема с block.
источник

VP

Vladimir Petrakovich in Kotlin Community
Кирилл Романенко
Подскажите пожалуйста, как провернуть такой трюк
class Foo<A : Any, out B>(val block: (A) -> B)

fun main() {
   val foo = Foo<Int, String> { it.toString() }
   val bar: Foo<Any, String> = foo // error
}


Если делаю out A, тогда проблема с block.
Никак, это некорректно. Надо тогда у foo Any указывать
источник

КР

Кирилл Романенко in Kotlin Community
Vladimir Petrakovich
Никак, это некорректно. Надо тогда у foo Any указывать
Грустно.(
источник

AL

Alexander Levin in Kotlin Community
Аргументы функций контравариантны, так что это просто в другую сторону работает:

fun main() {
   val f1: (CharSequence) -> String = { it.toString() }
   val f2: (CharSequence) -> Any = f1
   val f3: (String) -> String = f1
   
   val foo1: Foo<CharSequence, String> = Foo { it.toString() }
   val foo2: Foo<CharSequence, Any> = foo1
   val foo3: Foo<String, String> = foo1
}

class Foo<in A: Any, out B>(val block: (A) -> B)
источник

BV

Boris Vanin in Kotlin Community
А какие символы можно использовать в имени функции если?
источник

BV

Boris Vanin in Kotlin Community
Я имею ввиду имя которое обернуто в тильды
источник

BV

Boris Vanin in Kotlin Community
Не могу найти доку
источник

AN

Alexander Nozik in Kotlin Community
Boris Vanin
Не могу найти доку
от платформы зависит, я как-то находил, но уже не помню где
источник

BV

Boris Vanin in Kotlin Community
Мне пришёл 72 плагин 🤔
источник

AN

Alexander Nozik in Kotlin Community
Boris Vanin
Мне пришёл 72 плагин 🤔
о, хочу релиз ноут
источник