scala.io.Source 的 readInt
在 Console.scala 中,我们有很好的方法,例如例如 readInt
、readChar
等。
为什么我们不为 io.Source
使用它们呢?如果您认为我们应该使用 Java 的 IO 功能,那么为什么要使用 Console.read*
方法呢?
最小文件解析器还有其他类似 scala 的方法吗?
In Console.scala we're having nice methods such as readInt
, readChar
, etc.
Why don't we have them for io.Source
? And if you argue we should use Java's IO capabilities, then why having the Console.read*
methods?
Any other scala-ish method for minimal file parser?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
怎么样:
How about:
我不确定是否值得将其添加到标准库中。
Console.readInt
读取整行,然后将其转换为 int。据推测,用例是提示用户在控制台输入整数时。它也不是以防御方式编码的,尝试在数字后输入一个空格,例如'6 '
当使用
readChar
时,除第一个字符外,该行中的所有字符都将被丢弃。使用 io.Source 时,用例更多的是按字符或按行迭代。使用与
Console.read*
方法相同的语义处理输入应该很少见。刚刚看到未知用户的回答,我觉得很好。
I'm not sure it's worthwhile adding this to the standard library.
Console.readInt
reads a whole line and then converts it to an int. Presumably the use case is when the user is prompted to enter an integer at the console. It's not coded in a defensive way either, try entering a space after the number like'6 '
When using
readChar
all the characters in the line are discarded except for the first one.When using
io.Source
the use case is more about iterating by char or by line. Processing the input with the same semantic as theConsole.read*
method should be rare.I just saw user unknown's answer and I think it's good.