Рассмотрим следующий сценарий: У меня есть класс тестInfix обозначения и (...) не работает, как я ожидал
class Test() {
infix fun say(msg: String) = println(msg)
}
и основной метод
fun main(args: Array<String>) {
val test = Test()
test say "Hello World!" //Works
with(test) {
say "Goodbye World!" //Does not work
say("Hello again!") //Works
}
}
Как вы можете видеть, что я тестирую нотацию infix. Учитывая, что with(...)
позволяет вам работать с объектом, переданным как параметр в , с блоком без необходимости доступа к его членам через точечную нотацию, я бы ожидал, что нотация инфикса будет работать, как показано в моем примере выше.
К сожалению, это не работает, есть ли причина, по которой это не работает? Это ошибка или просто ограничение? Или, может быть, я не интерпретирую функцию with(...)
правильно?