Как я могу получить доступ к последнему результату в Scala REPL?
В python REPL я могу делать такие вещи, как:
>>> [1,2,3,4]
[1, 2, 3, 4]
>>> sum(_)
10
В ближайшее время REPL я могу сделать это:
user=> "Hello!"
"Hello!"
user=> *1
"Hello!"
Есть ли что-то подобное в Scala REPL?
3 ответа
Да, вы можете использовать точечную запись для ссылки на последний результат:
scala> List(1,2,3,4)
res0: List[Int] = List(1, 2, 3, 4)
scala> .sum
res1: Int = 10
Вы можете сослаться на предыдущий вывод как resN
для некоторых N
, Вы, наверное, заметили, что в Scala REPL результаты печатаются в виде resN: Type = value
:
Welcome to Scala version 2.9.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_24).
Type in expressions to have them evaluated.
Type :help for more information.
scala> List(1,2,3,4)
res0: List[Int] = List(1, 2, 3, 4)
scala> "Hello!"
res1: java.lang.String = Hello!
Хорошо, что resN
реальное имя переменной. В этом примере вы можете обратиться к списку как res0
и строка как res1
для (по крайней мере, насколько я знаю), пока открыт REPL:
scala> (res0.toString + res1) toLowerCase
res2: java.lang.String = list(1, 2, 3, 4)hello!
Обычно я просто нажимаю клавишу to, чтобы вернуть последнюю строку кода и продолжить ввод текста. Преимущество состоит в том, что вы можете сохранить все выражение вместе, что облегчает его последующее вырезание и вставку или редактирование.