Подтвердить что ты не робот

Как легко получить разделитель строк текущего os в Scala?

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

System.getProperty("line.separator")

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

4b9b3361

Ответ 1

scala> import util.Properties
import util.Properties

scala> Properties.lineSeparator
res14: java.lang.String =
"
"

Ответ 2

Оба 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 будет иметь правильное значение по умолчанию в этом случае.