【发布时间】:2012-02-10 15:34:56
【问题描述】:
我记得在 Java 中,我们是这样做的:
System.getProperty("line.separator")
如何在 scala 中做同样的事情?有没有更好(更简单)的方法?
【问题讨论】:
我记得在 Java 中,我们是这样做的:
System.getProperty("line.separator")
如何在 scala 中做同样的事情?有没有更好(更简单)的方法?
【问题讨论】:
scala> import util.Properties
import util.Properties
scala> Properties.lineSeparator
res14: java.lang.String =
"
"
【讨论】:
scala.util.Properties.lineSeparator 和 System.lineSeparator 都会做同样的工作。
System.lineSeparator 会直接调用需要在系统 props 中查找属性的 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 在这种情况下会有正确的默认值。
【讨论】: