hamayuzinの日記

エンジニアとかデータサイエンティストとかやってます。あの時 あれやってたな的な備忘録にできれば。

【scala入門】rubyエンジニアがscalaを勉強したメモ その1

会社の合宿で、scalaでなにか作ろうとしたが、挫折。 n予備校で、scalaを勉強し始めた。

その中で、rubyエンジニアが驚いた部分とメモ

hash の書き方

- Map( “a” -> 1, “b” -> 2)
- => じゃなくて ->
- {} じゃなくて ()

hashの追加

- Map( “a” -> 1, “b” -> 2) + (“c” -> 3)
- そのまま足すぅ
- 変数に入っていると一瞬なにかわからない
    - val map = Map( “a” -> 1, “b” -> 2)
    - map + (“c” -> 3)

hashの追加 その2

- > Map の getOrElse メソッドは、第一引数にはそのキーを与え、第二引数にキーの値がなかった場合の値を設定することができます。
- val map = Map( “a” -> 1, “b” -> 2) のとき
- map.getOrElse(“c”, 5) のとき、cは存在しないので、5がでる

listの追加

- val list = List(1, 2, 3, 4) のとき
- list :+ 9  で末尾に9を追加できる

正規表現

- “hoge”.r でRegex型になる それから正規表現マッチする

返り値が最後のやつ

- {} でmethodや式評価を行うが、最後に記述されたものがかえる。ruby っぽい
- def hoge(): String = {
        “hoge”
         “fuga”
    }
- は、fugaがかえる 
- なので、method内で if else しかない場合は、それぞれの中の値が勝手に返る

その他

  • Unit 返り値が意味ない場合 printlnとか
  • while式は、() が帰ってくる
  • for yield書いてからだと、新しい collectionにして返してくれる