Size: a a a

Kotlin Community

2020 February 19

OY

Oleg Yukhnevich in Kotlin Community
Nikita Krutko
Хотя, если написать функцию-обёртку, которая будет это делать... То не так уж и плохо, но всё равно явный костыль
как раз хотел предложитб

class Operation(
   val a: Int,
   private val _exec: Operation.(b: Int) -> Int
)
{
 fun exec(b: Int): Int = _exec(this, b)
}
источник

AM

Andrew Mikhaylov in Kotlin Community
Или сразу operator fun invoke, да.
источник

AM

Andrew Mikhaylov in Kotlin Community
Тогда будет op(b)
источник

NK

Nikita Krutko in Kotlin Community
Oleg Yukhnevich
как раз хотел предложитб

class Operation(
   val a: Int,
   private val _exec: Operation.(b: Int) -> Int
)
{
 fun exec(b: Int): Int = _exec(this, b)
}
О, спасибо, я как-то не подумал, что обёртку можно методом этого же класса сделать
источник

BP

Bogdan Panchenko in Kotlin Community
Nikita Krutko
О, спасибо, я как-то не подумал, что обёртку можно методом этого же класса сделать
выше еще про ператор напомнили
источник

NK

Nikita Krutko in Kotlin Community
Bogdan Panchenko
выше еще про ператор напомнили
Надо бы прочитать про это, хм
источник

AM

Andrew Mikhaylov in Kotlin Community
Nikita Krutko
Надо бы прочитать про это, хм
class Operation(
   val a: Int,
   private val _exec: Operation.(b: Int) -> Int
)
{
 operator fun invoke(b: Int): Int = _exec(this, b)
}
источник

AM

Andrew Mikhaylov in Kotlin Community
val op = Operation (2) { b -> a + b }
println(op(3))
// 5
источник

AO

Alexey Otts in Kotlin Community
Andrew Mikhaylov
val op = Operation (2) { b -> a + b }
println(op(3))
// 5
this *
источник

AM

Andrew Mikhaylov in Kotlin Community
Ась?
источник

AO

Alexey Otts in Kotlin Community
Пардон, херню написал
источник

NK

Nikita Krutko in Kotlin Community
Andrew Mikhaylov
class Operation(
   val a: Int,
   private val _exec: Operation.(b: Int) -> Int
)
{
 operator fun invoke(b: Int): Int = _exec(this, b)
}
Спасибо!
источник

AM

Andrew Mikhaylov in Kotlin Community
Nikita Krutko
Спасибо!
Почитать об этом, кстати, можно тут https://kotlinlang.org/docs/reference/operator-overloading.html#invoke
источник

NK

Nikita Krutko in Kotlin Community
Я даже не знал, что есть такой оператор, и в других языках вроде не встречал, либо мб не замечал
источник

AM

Andrew Mikhaylov in Kotlin Community
В C++ есть возможность написать void operator()(), чтобы перегрузить такое дело, к примеру :)
источник

AM

Andrew Mikhaylov in Kotlin Community
источник

AO

Alexey Otts in Kotlin Community
Ты хочешь чтобы он всплакнул?)
источник

AM

Andrew Mikhaylov in Kotlin Community
Alexey Otts
Ты хочешь чтобы он всплакнул?)
Я не знаю, что такое default type, и мне впадлу гуглить. Можно написать, что нет?)
источник

AO

Alexey Otts in Kotlin Community
Andrew Mikhaylov
Я не знаю, что такое default type, и мне впадлу гуглить. Можно написать, что нет?)
Можно)
источник

AN

Alexander Nozik in Kotlin Community
Andrew Mikhaylov
Я не знаю, что такое default type, и мне впадлу гуглить. Можно написать, что нет?)
Насколько я помню, это когда дженерик влом указывать
источник