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