2011-05-19 46 views
3

Console.scala我們有很好的方法,如readIntreadChar的readInt爲scala.io.Source

我們爲什麼不有他們io.Source?如果您認爲我們應該使用Java的IO功能,那麼爲什麼使用Console.read*方法?

最小文件解析器的任何其他scala-ish方法?

回答

1

我不知道這是值得加入這標準庫。 Console.readInt讀取整行,然後將其轉換爲int。據推測,用例是在控制檯提示用戶輸入一個整數的時候。它沒有以防禦性的方式編碼,試着在數字後面輸入一個空格,如'6 '

當使用readChar時,除了第一個字符以外,該行中的所有字符都被丟棄。

當使用io.Source時,用例更多地是通過字符或行迭代。使用與Console.read*方法相同的語義處理輸入應該很少見。

我剛剛看到用戶未知的答案,我認爲這很好。

+0

我從你的回答中得出的結論是「確實,Console.read *被認爲是有害的,我們應該刪除它,並使用java.util.Scanner'來代替」。我必須同意這一點。 – 2011-05-20 07:00:42

2

如何:

val sc = new java.util.Scanner (System.in) 
+0

那麼爲什麼'Console.readInt',當你可以'new java.util.Scanner(System.in)'? – 2011-05-20 06:58:47

+1

也許會在[Code-Golfs](http://codegolf.stackexchange.com)中贏得聲望? – 2011-05-20 13:38:33

相關問題