Size: a a a

Kotlin Community

2019 December 20

d

double_b in Kotlin Community
Vladimir Petrakovich
Надо использовать Base64.getMimeDecoder(), если у вас переводы строк есть
Ага, спасибо, через пару часов попробую, ща уже комп вырубил
источник

BP

Bogdan Panchenko in Kotlin Community
Alexey Tkachenko
Не соображу, как это использовать. Есть пример?
извини что так поздно, правда в своем исходно коде я не помню про descriptor, я его вроде не создавал, в пн буду на работе посмотрю (может либа обновилась)
источник

BP

Bogdan Panchenko in Kotlin Community
Bogdan Panchenko
извини что так поздно, правда в своем исходно коде я не помню про descriptor, я его вроде не создавал, в пн буду на работе посмотрю (может либа обновилась)
а если заиспользовать ObjectSerializer то UseSerializers уже не работает(
источник

BP

Bogdan Panchenko in Kotlin Community
ObjectSerializer - это оказывается для другого(
источник

BP

Bogdan Panchenko in Kotlin Community
интерестно а что это за чюдище
источник

AM

Andrew Mikhaylov in Kotlin Community
Bogdan Panchenko
интерестно а что это за чюдище
Сорцы находятся в kotlin/kotlinx.support и датируются весной 16-го
источник

VP

Vladimir Petrakovich in Kotlin Community
Bogdan Panchenko
интерестно а что это за чюдище
Это, видимо, kotlin-stdlib-jdk8 в прошлой жизни
источник

AM

Andrew Mikhaylov in Kotlin Community
Оно ещё мавеном собиралось :)
источник

BP

Bogdan Panchenko in Kotlin Community
Bogdan Panchenko
извини что так поздно, правда в своем исходно коде я не помню про descriptor, я его вроде не создавал, в пн буду на работе посмотрю (может либа обновилась)
StringDescriptor.withName("LocalDate")
источник

K

Kopusha in Kotlin Community
Andrew Mikhaylov
Оно ещё мавеном собиралось :)
т.е. быстрее, ты хочешь сказать?🙂
источник

AM

Andrew Mikhaylov in Kotlin Community
Kopusha
т.е. быстрее, ты хочешь сказать?🙂
Нет, давно это было, я хочу сказать
источник

AT

Alexey Tkachenko in Kotlin Community
Bogdan Panchenko
извини что так поздно, правда в своем исходно коде я не помню про descriptor, я его вроде не создавал, в пн буду на работе посмотрю (может либа обновилась)
Отлично, то, что нужно, спасибо большое!
источник

AD

Andrey Dmitriyev in Kotlin Community
Привет, ребят.
Какие есть эффективные либы у Kotlin и NodeJs для парсинга сайтов с ajax, авторизации c SCRF и переходами по страницам ЛК?
https://qna.habr.com/q/694964
источник

BV

Boris Vanin in Kotlin Community
Andrey Dmitriyev
Привет, ребят.
Какие есть эффективные либы у Kotlin и NodeJs для парсинга сайтов с ajax, авторизации c SCRF и переходами по страницам ЛК?
https://qna.habr.com/q/694964
Selenium но это явно не тот чят
источник

AD

Andrey Dmitriyev in Kotlin Community
Boris Vanin
Selenium но это явно не тот чят
Спасибо! Речь о Selenium WebDriver для Java?
источник
2019 December 21

ДБ

Дмитрий Борисов in Kotlin Community
Всем привет, обнаружил странное поведение с перегрузкой оператора invoke:

В случае когда у нас есть функция и оператор invoke который мы пытаемся вызвать из переменнной с типом в котором есть invoke, то вызывается именно invoke, а не функция - при этом компилятор на это никак не ругается(как например в ситуациях когда есть функция и конструктор с одинаковыми сигнатурами)

fun main() {
   val doSome = SomeClass()
   doSome()
}

fun doSome(){
   println("Function invocation")
}

class SomeClass{
   operator fun invoke(){
       println("SomeClass invocation")
   }
}


Этот код выведет: SomeClass invocation


Но! При этом если invoke это extension функция, то вызывается именно обычная функция:

fun main() {
   val doSome = "A string"
   doSome()
}

operator fun String.invoke(){
   println("String invocation")
}

fun doSome(){
   println("Function invocation")
}


Этот код выведет: Function inocation


Собственно вопрос: Такое поведение где-то задокументировано? Или это известный баг? На мой взгляд компилятор должен ругаться в таких случаях
источник

AM

Andrew Mikhaylov in Kotlin Community
У компилятора есть набор приоритетов относительно текущего скоупа, потому вряд ли тут должна быть ругань. Касательно того, логично ли наблюдаемое поведение во втором случае, не берусь утверждать, можно представить себе доводы за оба варианта приоретизации. С одной стороны, переменная по скоупу ближе к точке вызова, потому можно ожидать операцию, связанную с ней; с другой наличие или отсутствие экстеншна в языке обычно не позволяет менять поведение кода, лишь дополнять его там, где при отсутствии экстеншна была бы ошибка.
источник

AM

Andrew Mikhaylov in Kotlin Community
В документации я таких деталей не помню, к сожалению.
источник

AN

Alexander Nozik in Kotlin Community
Дмитрий Борисов
Всем привет, обнаружил странное поведение с перегрузкой оператора invoke:

В случае когда у нас есть функция и оператор invoke который мы пытаемся вызвать из переменнной с типом в котором есть invoke, то вызывается именно invoke, а не функция - при этом компилятор на это никак не ругается(как например в ситуациях когда есть функция и конструктор с одинаковыми сигнатурами)

fun main() {
   val doSome = SomeClass()
   doSome()
}

fun doSome(){
   println("Function invocation")
}

class SomeClass{
   operator fun invoke(){
       println("SomeClass invocation")
   }
}


Этот код выведет: SomeClass invocation


Но! При этом если invoke это extension функция, то вызывается именно обычная функция:

fun main() {
   val doSome = "A string"
   doSome()
}

operator fun String.invoke(){
   println("String invocation")
}

fun doSome(){
   println("Function invocation")
}


Этот код выведет: Function inocation


Собственно вопрос: Такое поведение где-то задокументировано? Или это известный баг? На мой взгляд компилятор должен ругаться в таких случаях
При совпадении сигнатур между расширением и мембером, всегда выбирается мембер.
источник

AM

Andrew Mikhaylov in Kotlin Community
Ну тут не о мембере речь, а о локальной переменной в более узком скоупе, чем функция снаружи.
источник