Size: a a a

Programming Offtop

2020 April 09

VP

Vladimir Petrakovich in Programming Offtop
Alexander Nozik
Ты можешь переопределить методы после делегирования - это раз. Ты можешь написать fun doSomething() = arg::doSomething - это два
Разве так можно?
источник

AN

Alexander Nozik in Programming Offtop
Vladimir Petrakovich
Разве так можно?
я чего-то не уверен
источник

VP

Vladimir Petrakovich in Programming Offtop
По-моему, все аргументы придётся руками передавать
источник

AN

Alexander Nozik in Programming Offtop
вместо лямбд точно можно, а вот вместо функций наверное нет...
источник

(

( in Programming Offtop
Alexander Nozik
Ты можешь переопределить методы после делегирования - это раз. Ты можешь написать fun doSomething() = arg::doSomething - это два
А первое - а что, если я не хочу делать класс подтипом интерфейса?
источник

(

( in Programming Offtop
Хотя это уже другое обсуждение
источник

(

( in Programming Offtop
Vladimir Petrakovich
Разве так можно?
Вощщем, тут смысл в том, что снаружи это будет выглядеть как бы вызовом функции, но на самом деле вызовом лямбды

fun hehmda(a: Int) {}

class HehMda {
 val mdaheh: (Int) -> Unit = ::hehmda
}

HehMda().mdaheh(3)
источник

(

( in Programming Offtop
В общем, вроде делает то что нужно, но выглядит криво
источник

VP

Vladimir Petrakovich in Programming Offtop
(
Вощщем, тут смысл в том, что снаружи это будет выглядеть как бы вызовом функции, но на самом деле вызовом лямбды

fun hehmda(a: Int) {}

class HehMda {
 val mdaheh: (Int) -> Unit = ::hehmda
}

HehMda().mdaheh(3)
Ну это если делать через val. У меня это сразу вызывает ассоциации с JS.
источник

(

( in Programming Offtop
Vladimir Petrakovich
Ну это если делать через val. У меня это сразу вызывает ассоциации с JS.
а если через fun, то будет лишняя пара скобочек
источник

(

( in Programming Offtop
HehMda().mdaheh()(3)
источник

AN

Alexander Nozik in Programming Offtop
Ну прокинуть параметры вообще не проблема, особенно с учетом того, что идея это делает
источник

VP

Vladimir Petrakovich in Programming Offtop
(
HehMda().mdaheh()(3)
Ну и мерзость
источник

VP

Vladimir Petrakovich in Programming Offtop
Я про то, что делать нормальные функции. И там такое не прокатит.
источник

(

( in Programming Offtop
кстати, пОлИмОрФиЗм в этом случае тоже проёбывается
источник

(

( in Programming Offtop
Vladimir Petrakovich
Я про то, что делать нормальные функции. И там такое не прокатит.
да, не прокатит
источник

VP

Vladimir Petrakovich in Programming Offtop
Ну не так уж сложно прокинуть руками 🤷‍♂️
источник

VP

Vladimir Petrakovich in Programming Offtop
Проблема использования delegate by implementation в том, что при добавлении новых методов в интерфейс может оказаться, что их надо было прокидывать по-особому, а они делегируются как есть
источник

VP

Vladimir Petrakovich in Programming Offtop
Поэтому уж лучше руками
источник

(

( in Programming Offtop
эх, вот бы мир, в котором в котлине можно делегировать, не реализовывая интерфейс
источник