Как легко получить линейный разделитель текущей ОС в Scala? - PullRequest
12 голосов
/ 10 февраля 2012

Я помню в Java, мы делаем это так:

System.getProperty("line.separator")

Как сделать то же самое в скале? Есть ли лучший (более простой) способ?

Ответы [ 2 ]

21 голосов
/ 10 февраля 2012
scala> import util.Properties
import util.Properties

scala> Properties.lineSeparator
res14: java.lang.String =
"
"
1 голос
/ 05 января 2014

Оба scala.util.Properties.lineSeparator и System.lineSeparator будут выполнять одну и ту же работу.

System.lineSeparator будет напрямую вызывать метод Java, который должен находить свойство в системных подпрограммах:

lineSeparator = props.getProperty("line.separator");

Вот результат:

scala> System.lineSeparator
res0: String = 
"
"

Возвращается к реквизитам Java по умолчанию, если ничего не найдено.

Аналогично, Properties.lineSeparator позвонит:

def lineSeparator = propOrElse("line.separator", "\n")

который в итоге вызывает:

System.getProperty(name, alt)

Результат тот же:

scala> scala.util.Properties.lineSeparator
res2: String = 
"
"

Таким образом, они оба получают разделитель строк из реквизита Java. Разница лишь в том, как они получают значения по умолчанию. Я не знаю, почему это так реализовано :). Как будто они не верят, что в этом случае Java будет иметь правильное значение по умолчанию.

...