2012-02-10 25 views

回答

20
scala> import util.Properties 
import util.Properties 

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

兩個scala.util.Properties.lineSeparatorSystem.lineSeparator會做同樣的工作。

System.lineSeparator將直接調用Java方法,在系統中的道具找物業:

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

下面是結果:

scala> System.lineSeparator 
res0: String = 
" 
" 

它回落到默認的Java道具,如果沒有找到。

同樣,​​會叫:

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

最終調用:

System.getProperty(name, alt) 

結果是一樣的:

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

所以他們都從Java道具獲得行分隔符。唯一的區別是他們如何得到默認值。我不知道爲什麼它以這種方式實現:)。這就像他們不相信Java在這種情況下會有正確的默認值。

相關問題