Geek-Side

Resource > Scala

scalaの特徴

  • 関数型言語
  • オブジェクト指向
  • java相互運用

Scala開発環境のインストール

Scalaは以下のページからダウンロードできます。
http://www.scala-lang.org/downloads/index.html

様々な形式で配布されていますが、IzPack Java Installerをダウンロードすれば、
インストーラにしたがって簡単にインストールできます。

Hello Scala

定番のHello Worldをいってみましょう。
scala interpreterを起動して、以下を入力します。
scala> def main (args: Array[String]) {
    | println("Hello World!")
    | }
main: (Array[String])Unit

実行してみます
scala> main(null)
Hello World!
unnamed0: Unit = ()

Scala Interpriter

Scala Interpriterでいろいろな計算ができます。
scala> 1+1
unnamed1: Int = 2

scala> (1+2)/3
unnamed2: Int = 1

scala> Math.sin(Math.Pi/2)
unnamed3: Double = 1.0

scala> Math.max(1, 2)
unnamed4: Int = 2

Mathオブジェクトをimportしておけば、Mathオブジェクトの指定を省略できます。
scala> import Math._
import Math._

scala> max(1, 2)
unnamed5: Int = 2

Scala List

リストの作り方
scala> val intList = (1, 2, 3)
intList: (Int, Int, Int) = (1,2,3)

要素をリストの先頭に追加する
scala> 1 :: List(2, 3)
unnamed13: List[Int] = List(1, 2, 3)

scala> List(2, 3).::(1)
unnamed14: List[Int] = List(1, 2, 3)

リストを連結する
scala> List(1, 2) ::: List(3, 4)
unnamed15: List[Int] = List(1, 2, 3, 4)

scala> List(3, 4).:::(List(1, 2))
unnamed16: List[Int] = List(1, 2, 3, 4)

Scala 関数

main Application etc
class def object
import

変数

var val 型推論 スコープ
  • val 変更不可
  • var 変更可能

scala> val i = 1
i: Int = 1

scala> i = 2
<console>:7: error: assignment to non-variable
  val unnamed17 = {i = 2;i}


scala> var j = 1
j: Int = 1

scala> j = 2
j: Int = 2

分岐

if while case-class

その他

trait mixin