Scala

Scalaのクラス

参考サイト Scalaクラスメモ(Hishidama's Scala class Memo) コンストラクタ コンストラクタとは、インスタンス化するときの処理をまとめた特別なメソッドです。 インスタンス化とは、クラス(設計図)からインスタンス(組み立てられた実物)を作ることです…

ScalaのThreadとRunnable

Threadクラス Threadクラスを利用すれば、並行処理を行うことができます。 object Main extends App { println(1) // 別のスレッドを生成 val thread = new Thread(() => { println(2) Thread.sleep(1000) println(3) }) // 実行 thread.start() println(4) …

Scalaの関数

関数リテラル 参考サイト Scalaリテラルメモ(Hishidama's Scala literal Memo) 関数リテラルを使って以下のように関数を定義できます。関数名がありませんから無名関数ともいいます。 scala> (x: Int, y: Int) => x + y res0: (Int, Int) => Int = $$Lambda$…

Scalaのパターンマッチ

参考サイト Scala matchメモ(Hishidama's Scala match Memo) scala-hackathon/patternmatching.rst at master · yuroyoro/scala-hackathon · GitHub 基本 match式は、switch文のような式です。breakは必要ありません。_はワイルドカードです。 def signal(co…

Scalaのケースクラス

ケースクラス ケースクラスとしてクラスを定義すると、以下の恩恵があります。 フィールドが公開される(全コンストラクタ引数にvalを付けてくれる) toStringなど便利なメソッドが実装される コンパニオンオブジェクトが自動生成される コンパニオンオブジェ…

Scalaのクラスとオブジェクト

クラス シングルトンとは、そのクラスのインスタンスが絶対に1つである事を保証することです。 classキーワードで定義すると、シングルトンではないいわゆる普通のクラスになります。 以下のようにPerson型の変数を何個も作ることができます。 class Person(…

Scalaのコレクション(Seq, Set, Map)とタプル

参考サイト Scalaコレクションメモ(Hishidama's Scala collection Memo) 全体像 Seq (シーケンス) List (リスト) Array (配列) Range (レンジ) String (文字列) Set (集合) Map (連想配列) Seqは、いわゆる基本的な配列。 Setは、要素の重複を許さない集合。…

Scalaのfor文

for (i <- 0 until 5)にすれば、0~4まで繰り返します。 for (i <- 0 to 5) { println(i) } 0 1 2 3 4 5 コレクションの処理 コレクションの各要素を順番に処理できます。 なお1つの式しか持たない場合、{}を省略できます。 scala> for (i <- List(1,2,3)) p…