Curl Global Community
Java開発者のためのCurl言語講座(変数) - Printable Version

+- Curl Global Community (https://communities.curl.com)
+-- Forum: Blogs (https://communities.curl.com/forumdisplay.php?fid=17)
+--- Forum: Tech blog (https://communities.curl.com/forumdisplay.php?fid=18)
+--- Thread: Java開発者のためのCurl言語講座(変数) (/showthread.php?tid=314)



Java開発者のためのCurl言語講座(変数) - hokada - 10-20-2011

今回から、Javaを既に知っている人が、Curl言語を覚えるように、Javaと比較しながら説明していきたいと思います。
何回続くか分かりませんが、よろしくです。


まず最初は、変数宣言の方法です。

Javaだとこんな感じですね。
Code:
String str = "ABC";
Foo foo = new Foo();
List list = new ArrayList();

ちょっとJavaとは異なりますが、これをCurlで書くと。
Code:
{let str:String = "ABC"}
{let foo:Foo = {Foo}}
{let list:{Array-of String} = {{Array-of String}}}

但し、このletや後述するdef/setというものに関しては、以下のように括弧を省略することができます。

Code:
let str:String = "ABC"
let foo:Foo = {Foo}
let list:{Array-of String} = {{Array-of String}}

但し、グローバル変数のようにトップレベルに定義した場合は省略できません。


バージョン6からはdefが追加され、型推論がされるようになりました。
(但し、defは"let constant"と同様で、値の上書きはできないです。)
Code:
|| Curl
def str = "ABC"
def foo = {Foo}
def list = {{Array-of String}}


Java7から同様にジェネリクスが推論されるようになったようですね。(ちなみに、JavaのジェネリクスをCurlでは、パラメータ化クラス と呼んでいます。)

Code:
List list = new ArrayList<>();


次に値への代入ですが、Curlではsetというものを使う必要があります。
Code:
// Java
String str = "ABC";
str = "DEF";

Code:
|| Curl
let str:String = "ABC"
set str = "DEF"



ちなみにコメントはJavaでは、1行なら"//"で、複数行なら"/* comment */"ですが、Curlでは1行なら"||"、複数行なら"|# comment #|"です。