Skip to content

Instantly share code, notes, and snippets.

@kdnk
Last active October 14, 2016 13:52
Show Gist options
  • Save kdnk/1e5822e58f7e1524e11d18292336a841 to your computer and use it in GitHub Desktop.
Save kdnk/1e5822e58f7e1524e11d18292336a841 to your computer and use it in GitHub Desktop.

変数

  • val: 変更不可.valueの略.
  • var: 変更可.variableの略.

型の宣言

Scalaは型推論してくれる.

型を明示的に宣言したい時は

val msg: String = "Hello, world!"

のようにして宣言できる. 型の宣言は後ろ.

関数

def max(x: Int, y: Int): Int = {
  if (x > y) x
  else y
}

関数のパラメータ型については,型推論を行わないので,すべての関数パラメータにコロンを挟んで型アノテーションを付けなければならない.

Slacaでは,戻り値の型(戻り型)のことを,結果型(result type)という.

関数が1文だけから構成される場合は,中括弧を省略できる.

def max2(x: Int, y: Int) = if (x > y) x else y

また,何も返さない関数の定義は,

def greet() = println("Hello, world")

インタープリターの結果は,

greet: ()Unit

となる.Unitという結果型は,javaのvoid型のようなもの.

Scalaの実行(スクリプト)

hello.scalaというファイルに

println("Hello, world, from a script!")

と書き込み,scala hello.scalaを実行.

引数

stepsというScala配列の先頭要素には,steps(0)としてしてアクセスできる.steps[0]ではない.

println("Hello, " + args(0) + "!")

scala helloarg.scala planetを実行すると,

Hello, planet!

となる.

whileとif

var i = 0
while (i < args.length) {
  println(args(i))
  i += 1
}

scala printargs.scala Scala is funを実行すると,

Scala
is
fun

と表示される.

foreachとfor

コマンド行引数を1つずつ出力するためのコードは,次のようにも書くことができる.

args.foreach(arg => println(arg))

arg関数リテラルという.

型を明示した場合は,

args.foreach((arg: String) => println(arg))

さらに,関数リテラルが1個の引数をとる1文から構成される場合は,

args.foreach(println)

のように略記することもできる.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment