Скажем, я разработал какой-то API и недальновидно дал скобки для функции 0-арности в своем определении
class Foo(value: String) {
def chars(): Seq[Char] = value.toSeq
}
Это означает, что вам неприятно приходится предоставлять пустые скобки, если вы хотите следовать вызову этого метода с помощью apply
на возвращаемом Seq
:
val f = new Foo("Hello")
println(f.chars()(3))
Это явно не идеально, было бы лучше иметь возможность написать:
println(f.chars(3))
Конечно, если вы удалите круглые скобки из определения метода, это ломает все существующие использования, которые обеспечивают круглые скобки. Есть ли способ перенести функцию 0-арности из круглых скобок в отсутствие их, не нарушая всех применений?