Scalaの基本的な文法についての紹介です。Hello Worldの流れや型の定義、Scala特有の機能を紹介します。
🐮 MacへのScalaのインストール
HomebrewでScalaをインストール。
brew install scala sbt |
🚌 Hello World
HelloWorld.scalaを作成。
object HelloWorld { |
build.sbtを作成して以下を記入。
scalaVersion := "2.12.2" |
次のコマンドでコンパイルして実行。
sbt |
🐰 コンソールを呼び出す
ScalaのREPLの呼び出しはsbt consoleで呼び出せます。
sbt console |
REPLの終了は:quit or :q。
🐞 コメント
// コメントA |
😸 変数
var 変数:型 = 値の形式。型は型推論で省略が可能。
var id:Int = 1 |
varは再代入可能な変数(mutable)、valは再代入ができない変数(immutable)を示す。
var y = 1 |
🍣 定数
val 変数:型 = 値の形式。
val NUM:Int = 1 |
🗻 型
| 型 | Javaでの型 | 説明 | 初期値 |
|---|---|---|---|
Boolean |
boolean | true、falseの真偽値 |
false |
Char |
char | 1文字(2byte) | \0 |
String |
String | 文字列 | null |
Int |
int | 32bitの整数 | 0 |
Long |
long | 64bitの整数 | 0 |
Float |
float | 32bitの浮動小数 | 0.0 |
Double |
double | 64bitの浮動小数 | 0.0 |
🎉 文字列補完
s"..."とすると$xxxの変数を展開して文字列置換してくれます。
val name = "hoge" |
😀 Tuple
複数のデータを格納できるコンテナ型で、違う型も格納できる。22個が格納できるオブジェクトの上限。
val t = (1, "hoge", 2.2) |
🏈 Unit
Unitは戻り値のない型。voidと同じもの。
😎 制御文
// if |
🗽 関数
// 通常の書き方 |
returnは省略可能で、省略時は最後の文が評価されます
def hoge(): String = { |
この場合の{}は{}式です。メソッド構文に特別に{}が含まれているわけではないです。
🐠 クラス
クラスのフィールドはvalはgetterのみ提供、varはgetterとsetterを提供。
class Dog(_name: String, _age: Int) { // コンストラクタ |
継承はextends、メソッドオーバーライドする際はoverride修飾子を追加。
class GoldenRetriever(_name: String, _age: Int) extends Dog(_name: String, _age: Int) { |
そのほかにもprivate, protected修飾子などがあります。
🤔 例外処理
try、catchは値を返すが、finallyは値を返さないので注意。
try { |
👽 参考リンク
- Hatena-Textbook/foundation-of-programming-scala.md at master
- Introduction · Scala研修テキスト
- Scalaのざっくり入門 - Qiita
