2012-02-10 10 views

Odpowiedz

20
scala> import util.Properties 
import util.Properties 

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

Zarówno scala.util.Properties.lineSeparator i System.lineSeparator zrobi to samo zadanie.

System.lineSeparator będzie bezpośrednio wywołać metodę Javy, która musi znaleźć nieruchomość w systemach rekwizytów:

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

Oto wynik:

scala> System.lineSeparator 
res0: String = 
" 
" 

Powraca do domyślnych rekwizyty Java jeśli żadna znaleźć.

Podobnie Properties.lineSeparator wezwie:

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

która ostatecznie nazywa:

System.getProperty(name, alt) 

Rezultat jest taki sam:

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

Więc oboje dostać separator linii z rekwizytami Java. Jedyną różnicą jest to, jak uzyskują wartości domyślne. Nie wiem, dlaczego jest to realizowane w ten sposób :). To tak, jakby nie wierzyli, że Java będzie miała poprawne domyślne ustawienia w tym przypadku.

Powiązane problemy