REPL = Read-Eval-Print Loop
コマンドプロンプトで(左端の > はプロンプト文字なので それ以降を入力する)
Scala
すると、scala> というプロンプトが表示され、REPLの中にいることがわかる。
コマンドプロンプトで、
sbt console
そのあとは、a と同様。
a,bともに、REPL内では、Scalaの式以外に、REPLに対するコマンド(: から始まる名前)
を入力することができる。試しに、コマンド :help を入れてみて下さい。
:help
Script Editor に式を書き、
その式をドラッグして選択し、
Ctrl+ENTER
出力は Output Pane に表示される。
kojoでは(多くのIDEで) Ctrl+SPACE で補完が行われるのに対し、
CUI系のツール(REPLも)では TAB キーで補完が行われることが多い。
出力:print(), println() 等が使える
# Javaでは System.out.print() 等のように呼ぶが
# Scalaでは 単に print() でOK
# これらの関数は1引数なので
# 複数の値を印字したければ print(““+x+”,”+y+”\t”) のようにつないで文字列にする
# 注釈: 演算子 ‘+’ は 数値を対象としたときは加算を行う演算子だが、
# 被演算子に文字列を含む時は、文字列の連結を行う演算子となる。
# 補足: Scala言語では、x + “,” + y + “\t” でもいい。
# (他の多くの言語で、+ 記号は、左被演算子が文字列の時に連結演算子と
# なるため、+ による連結の最初の要素として “” が必要とされるが)
入力:文字列入力は readln(promptString)
整数入力は readInt(promptString) (readDoubleもある)
階乗計算等を実行するにあたって、
val n=readInt("何か入れて")
println(fact(n))
などのように呼び出す。
println(fact(readInt("整数をどうぞ")))
と一行にもできる
if文は(値を返す場合 if式)if だけでは許されず 必ず else句が必要(右図)
どんなケースであっても 先頭行で宣言した型の値を返さないといけないから
例:
def twice(n:Int):Int ={
n * 2
}
println(twice(10))
本章でのプログラム実例集