10-28-2011, 02:38 PM
今回はforやwhile、ifなどの制御文についての説明です。
基本的には、Curl的("{}"とか)に書く必要がありますので見た目は違いますが、機能は類似しています。
<ループ>
では、まずfor文ですが、Javaでは以下のように書きますね。
では、Curlについては以下のよう。
また、while文も同様のものもあります。これは構文的にもほぼ一緒です。
if文ですが、これはJavaや他の言語ともあまり変わらないですね。
但し、switch文はちょっと違います。
Javaですとこんな感じ。
Curlですとこんな感じで書き方自体は似ています。
ただ、Javaではbreak文を書かなければ、次のcaseをチェックしに行きますが、Curlではbreak文を書くことなく、break文が入っているような動きをします。ここはJavaプログラマーには注意が必要です。
また、Javaでは、式として扱えるのは、intと列挙型とJava7から文字列ですが、Curlでも数量型、列挙型、文字列OKです。それ以外にtype-switch(型により処理を分岐)やplatform-switch(Win32, Mac, Linuxなどにより処理を分岐)という別のswitch文も用意されています。
ちなみに、switchとは関係ないですが、型チェックにはisaを使います。Javaでいうinstanceofみたいなものですね。
以上、制御文でした。次回以降はプロシージャやクラスについての説明をしていきたいと思います。
基本的には、Curl的("{}"とか)に書く必要がありますので見た目は違いますが、機能は類似しています。
<ループ>
では、まずfor文ですが、Javaでは以下のように書きますね。
Code:
List list = new ArrayList();
....
for (int i = 0; i < list.size(); i++) {
String str = list.get(i);
....
}
// または、最近では以下のように書くかもしれません。
for (String str : list) {
....
}
では、Curlについては以下のよう。
Code:
def list = {{Array-of String}}
....
{for i = 0 below list.size do
def str = list[i]
....
}
|| もしくは、
{for str in list do
....
}
また、while文も同様のものもあります。これは構文的にもほぼ一緒です。
Code:
// Java
while (条件式) {
// 処理
}
|| Curl
{while 条件式 do
|| 処理
}
if文ですが、これはJavaや他の言語ともあまり変わらないですね。
Code:
// Java
if (条件式) {
// 処理1
} else if (条件式) {
// 処理2
} else {
// 処理3
}
|| Curl
{if 条件式 then
|| 処理1
elseif 条件式 then
|| 処理2
else
|| 処理3
}
但し、switch文はちょっと違います。
Javaですとこんな感じ。
Code:
// Java
switch (式) {
case 要素1:
// 処理1
case 要素2:
// 処理2
default:
// 処理3
}
Curlですとこんな感じで書き方自体は似ています。
Code:
{switch 式
case 要素1 do
|| 処理1
case 要素2 do
|| 処理2
else
|| 処理3
}
|| こんな風にまとめることもできます。
{switch 式
case 要素1, 要素2, 要素3 do
|| 処理1
case 要素4, 要素5 do
|| 処理2
else
|| 処理3
}
ただ、Javaではbreak文を書かなければ、次のcaseをチェックしに行きますが、Curlではbreak文を書くことなく、break文が入っているような動きをします。ここはJavaプログラマーには注意が必要です。
また、Javaでは、式として扱えるのは、intと列挙型とJava7から文字列ですが、Curlでも数量型、列挙型、文字列OKです。それ以外にtype-switch(型により処理を分岐)やplatform-switch(Win32, Mac, Linuxなどにより処理を分岐)という別のswitch文も用意されています。
Code:
{type-switch v
case t:Foo do
|| vがFoo型のとき
case t:Hoge do
|| vがFoo型のとき
}
ちなみに、switchとは関係ないですが、型チェックにはisaを使います。Javaでいうinstanceofみたいなものですね。
Code:
{if v isa Foo then
|| do something
}
以上、制御文でした。次回以降はプロシージャやクラスについての説明をしていきたいと思います。