ブロック

 
 
 

ブロックはエクスプレッションのグループで、1 つのエクスプレッションに代えて使用できます。ブロックは中カッコで囲みます。

{
	print("Hello there.");
	print("Glad to meet you.");
	print("So long!");
}

たとえば、if 文が次の形式になっている場合:

if (condition)
	exp1

exp1 は次のように単一のエクスプレッションでも構いません。

if ($x > 5)
	print("It's more than 5!");

...または、次のようにエクスプレッションのブロックでも構いません。

if ($x > 5) {
	print("It's more than 5!");
	$x = 0;
	$y++;
}

ブロックは条件文やループ文を使用する場合に重要になります。

重要な注意事項

MELでは、大半の言語とは異なり、ブロック内に文が 1 つしかなくても、ブロック内のすべての文の末尾にセミコロンを付ける必要があります。

if ($s > 10) {print("Glonk!")} // Syntax error.
if ($s > 10) {print("Glunk!");} // Notice the semicolon.

ブロックにおける変数の適用範囲

ブロック内で宣言されたローカル変数はそのブロック内でしか認識されないため、ブロックは変数の適用範囲を制限するのにも便利です。

int $test = 10;
{
	int $test = 15;
	print($test+"\n");
}
print($test+"\n");
// Result:
15
10