scala.io.Source 的 readInt

发布于 2024-11-08 17:19:04 字数 331 浏览 0 评论 0原文

Console.scala 中,我们有很好的方法,例如例如 readIntreadChar 等。

为什么我们不为 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

层林尽染 2024-11-15 17:19:04

怎么样:

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

How about:

val sc = new java.util.Scanner (System.in)
各空 2024-11-15 17:19:04

我不确定是否值得将其添加到标准库中。 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 the Console.read* method should be rare.

I just saw user unknown's answer and I think it's good.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文