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