2012-02-10 3 views

risposta

20
scala> import util.Properties 
import util.Properties 

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

Sia scala.util.Properties.lineSeparator e System.lineSeparator farà lo stesso lavoro.

System.lineSeparator sarà direttamente chiamare il metodo Java che deve trovare immobili a sistemi di oggetti di scena:

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

Ecco il risultato:

scala> System.lineSeparator 
res0: String = 
" 
" 

Si ricade a default puntelli Java se nessuno trovato.

Allo stesso modo, Properties.lineSeparator chiamerà:

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

che alla fine chiama:

System.getProperty(name, alt) 

risultato è lo stesso:

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

Così hanno entrambi ottengono separatore di linea da puntelli Java. L'unica differenza è il modo in cui ottengono le impostazioni predefinite. Non so perché è implementato in questo modo :). È come se non si fida che Java abbia il valore predefinito corretto in questo caso.