Kotlinをやったことがあって、Scalaをやったことがない人向けのシンタックスチートシート。
細かい動作の違いや仕様の違いは書いてません。
概念 | Kotlin | Scala |
---|---|---|
top level | function | object |
companion object | companion object | object |
Value Object | data class | case class |
関数 | fun | def |
forでの初期代入 | in | <- |
range | 0.. 10 |
0 to 10 |
forでの値飛ばし | step, downTo | by |
パターンマッチ | when ~ is | match ~ case |
インスタンス生成 | Foo() | new Foo |
コンストラクタ | constructor | def this |
インターフェース | interface | trait |
ジェネリクス | <T> |
[T] |
変性 | out, in | +, - |
lamda | -> |
=> |
nullable | String? | Option[String] |
build tool | gradle | sbt(Scala Build Tool) |
スコープ関数 | with, apply, let, run, also | 対応なし |
拡張関数 | fun クラス名.関数名() | pimp my library |
暗黙的な型変換など | 対応なし | implicit |
関数の空実装 | TODO() | ??? |
formatter | ktlint | Scalafmt, Scalareform |
Scalaでしかできないもので勉強した方がよさそうなこと
- implicit
- Pattern Match
- モナド