Size: a a a

Kotlin Community

2020 September 08

AH

Ayrat Hudaygulov in Kotlin Community
саша сок #KotlinGang
я сначала думал как заюзать результат, но не придумал, никто не будет просто писать функцию, которая вызывает хендлер
ну это не я придумал))
источник

с#

саша сок #KotlinGang... in Kotlin Community
саша сок #KotlinGang
ну так для этого пишут

fun <T> time(handler: () -> T): T {
   val startTime = time()
   val result = handler()
   println(time() - startTime)
   return result
}
во
источник

AH

Ayrat Hudaygulov in Kotlin Community
я в своей команде насаждаю запись функций через = где можно чтобы случайно не просрать возвращаемое значение

fun foo() {
 bar()
}

fun foo() {
 return bar()
}
источник

PE

Pavel Erokhin in Kotlin Community
Ayrat Hudaygulov
я в своей команде насаждаю запись функций через = где можно чтобы случайно не просрать возвращаемое значение

fun foo() {
 bar()
}

fun foo() {
 return bar()
}
команда мечты)
источник

AH

Ayrat Hudaygulov in Kotlin Community
в мини примерах кажется очевидным, а вот когда таких функций тысяча, уже может выстрелить по закону больших чисел
источник

с#

саша сок #KotlinGang... in Kotlin Community
Ayrat Hudaygulov
я в своей команде насаждаю запись функций через = где можно чтобы случайно не просрать возвращаемое значение

fun foo() {
 bar()
}

fun foo() {
 return bar()
}
а как его просрешь, если писать возвращаемый тип везде
источник

AH

Ayrat Hudaygulov in Kotlin Community
саша сок #KotlinGang
а как его просрешь, если писать возвращаемый тип везде
а это уже другой кодстайл.
источник

AH

Ayrat Hudaygulov in Kotlin Community
компилятор не ругает за неиспользованное значение и это плохо
источник

AH

Ayrat Hudaygulov in Kotlin Community
возвращаемый тип писать ПРИХОДИТСЯ
источник

AH

Ayrat Hudaygulov in Kotlin Community
Потому что компилятор не доработал
источник

с#

саша сок #KotlinGang... in Kotlin Community
я не думаю, что причина в том, что он не доработан, это быстро сделать, просто скорее всего было принято решение, что это не нужно
источник

с#

саша сок #KotlinGang... in Kotlin Community
Ayrat Hudaygulov
я в своей команде насаждаю запись функций через = где можно чтобы случайно не просрать возвращаемое значение

fun foo() {
 bar()
}

fun foo() {
 return bar()
}
я не понял, вы в команде говорите везде писать через = функции, или наоборот ?
источник

AH

Ayrat Hudaygulov in Kotlin Community
Мнения разные. Я считаю что неиспользованный возврат это плохо и это должно быть дефолтом.
источник

AH

Ayrat Hudaygulov in Kotlin Community
саша сок #KotlinGang
я не понял, вы в команде говорите везде писать через = функции, или наоборот ?
Где можно через =, лучше писать через =

Выходной тип обязательно писать в любом публичном апи, в приватном по желанию, но лично я везде пишу
источник

с#

саша сок #KotlinGang... in Kotlin Community
Ayrat Hudaygulov
Мнения разные. Я считаю что неиспользованный возврат это плохо и это должно быть дефолтом.
я согласен, но причина того, что это не добавили в другом скорее всего
источник

с#

саша сок #KotlinGang... in Kotlin Community
Ayrat Hudaygulov
Где можно через =, лучше писать через =

Выходной тип обязательно писать в любом публичном апи, в приватном по желанию, но лично я везде пишу
ну а как тип просрать можно, если ты пишешь

fun getUser(...) {
   DatabaseImpl.user(...)
}

даже если просрешь тип, то человек, который это найдет, увидит это за секунду исправит
источник

с#

саша сок #KotlinGang... in Kotlin Community
это даже никаких усилий не доставит, тем более, когда тесты пишешь, такая вероятность к нулю стремится

чтобы что-то не работало из-за того, что просрали тип и не могут найти где его просрали - такого не было никогда у меня
источник

с#

саша сок #KotlinGang... in Kotlin Community
другое дело, что выглядит это по-разному
источник

AH

Ayrat Hudaygulov in Kotlin Community
ну тут скорее речь не про свой код, который пишется вмнеяемо, а про конские апи, написанные для мутантов с сайд эффектами вида

someClass().init()

он допустим может мутировать исходный класс, а может возвращать новую копию - надо смотреть сорцы.
Обычно подобные ошибки случаются с кодом, который обмазан мутирующими сайд эффектами
источник

DS

Dmitry Sokolov in Kotlin Community
Что делать?


5:12 PM  Gradle build finished in 2 s 355 ms

5:12 PM  Error running 'ExampleUnitTest.addition_isCorrect': Command line is too long. Shorten command line for ExampleUnitTest.addition_isCorrect or also for Android JUnit default configuration.
источник