ScalaのコンソールI/O
1. 概要
このチュートリアルでは、Scalaを使用してユーザー入力を読み取る方法を説明します。
2. ユーザー入力の取得
StdIn.readLine()メソッドを使用するだけでよいため、ユーザー入力の読み取りは簡単です。
scala> val line = scala.io.StdIn.readLine()
$ some user input
val line: String = some user input
より具体的なタイプを読みたい場合は、 StdIn クラスに、 readBoolean 、 readByte 、などの多くの補助メソッドがあります。 ] readChar 、 readDouble 、 readInt 、 readFloat 、および readLong :
scala> val i = scala.io.StdIn.readInt()
$ 42
val i: Int = 42
scala> val i = scala.io.StdIn.readInt()
$ abc
java.lang.NumberFormatException: For input string: "abc"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at scala.io.StdIn.readInt(StdIn.scala:122)
at scala.io.StdIn.readInt$(StdIn.scala:117)
at scala.io.StdIn$.readInt(StdIn.scala:241)
(...)
scala> val b = scala.io.StdIn.readBoolean()
True
val b: Boolean = true
scala> val b = scala.io.StdIn.readBoolean()
abc
val b: Boolean = false
これらのメソッドは文字列変換に依存していることに注意してください。 そのため、入力が解析できない場合は、整数解析で見たように例外がスローされるか、ブール値の例で見たように暗黙的な変換を行うことができます。
3. 結論
この記事では、Scalaの基本的なタイプのいずれかとしてユーザー入力を読み取る方法を見ました。