削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎関数: Scalaでは、「0個以上のパラメータを受取ることの出来る式」を関数と呼びます。 他の言語では、アロー関数やラムダ式と呼ばれる概念です。
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
168 行
: 関数には名前がないので、変数に一旦に束縛し変数(変数名)を使って呼出します。
: 8行目では、変数を介さず定義したその場で実行しています(無名関数の即時実行)。
 
== メソッド ==
メソッドは、コードを再利用する仕組みで、関数と似ていますが、両者は別個のものです。
メソッドはclass、object、trait内でキーワードdefを使って定義します。
 
;メソッド:<syntaxhighlight lang=Scala line>
object Main extends App {
def add(x: Int, y: Int): Int = x + y
def msg: String = "hello!"
 
println(add(1, 2))
println(add(1999, 1))
println(msg)
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
3
2000
hello!
</syntaxhighlight>
: これだけ観ると、構文はともかく関数とメソッドの差は大きく感じられません。
: 強いていうと、空の引数リストは定義も呼出しも () を付けないところが違います。
 
これまで、頻繁に使ってきた <code>println()</code> も、Predefオブジェクトのメソッドで、Predefオブジェクトは暗黙に import されるので特別な準備なく使えました。
 
<!--
== クラス ==
== ケースクラス ==
== オブジェクト ==
== トレント ==
-->
 
== メインメソッド ==
メインメソッドは、プログラムのエントリーポイントです。
 
== 制御構造 ==
Scalaも、多くのプログラミング言語と同じく、「逐次」「分岐」「反復」の 3 種類の制御構造を持ちます。
Scalaの制御構造は、全て値を持ちます。この事は、Scalaの If'''式''' は、[[C言語]]の三項演算子と等価であることを示します。
 
=== 分岐 ===
==== if ====
elseが省略され条件が偽だった場合は、 Unit 型の値 () 単位ユニットが式の値となります。
==== match ====
C言語のswicth文は、式と一致するリテラルのラベルへの多方向GOTO文ですが、Scalaのmatch式はパターンマッチングに基づいています。
=== 反復 ===
==== while ====
==== do - while ====
Scala 3 で、do - while になりました。
while の条件式に繰返し部分と続行条件を書き、ループ本体は空にすることで do - while を模倣できます。
==== for ====
Scalaのfor式は、ジェネレータに対してイテレーションを行います。
=== 脱出 ===
==== return ====
ブロックからの脱出には、return を使います。
break や continue はありません。
 
== 脚註 ==