Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Java開発者のためのCurl入門-JavaとCurlの構文比較

最終回

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/03/12 14:00

 JavaプログラマがCurlを習得する際、最も大きなハードルと感じるのは言語仕様そのものでしょう。そこで今回は、CurlとJavaとの構文等の比較を行います。

目次

はじめに

 JavaプログラマがCurlを習得する際、最も大きなハードルと感じるのは言語仕様そのものでしょう。そこで今回は、CurlとJavaとの構文等の比較を行います。

1 変数宣言と利用頻度の高いデータ型

 まずは、変数の型や宣言方法などよく利用する構文から説明します。

1-1 基本的な型

 次の表を見て分かるように、プリミティブ型とStringの型名は、JavaとCurlでは大差ありません。

プリミティブ型などの対応表
Java Curl Curl(符号なし整数)
int int uint
byte byte/int8 uint8
short int16 uint16
long int64 uint64
char char
float float
double double
boolean bool
void void
String String
Date/Calendar DateTime

 Curlは、符号なし整数を扱うこともできます。その場合はuintやuint8を使用します。また、IntegerやDoubleといったラッパークラスに相当するクラスはCurlにはありません。

1-2 変数宣言

 Curlで変数を宣言するには「let」を使用します。letで始まる文を「let ステートメント」と呼びます。

Java
String str = "abc";
Curl
let str:String = "abc"

 「any」を使用して型定義なしに変数を宣言することも可能です。この場合の型は、動的に決定されます。

型定義なしの変数宣言
let value:any

1-3 null値を許容する変数宣言

 Curlでは、null値を許容する変数であることを指定して宣言することが可能です。null値を許容する場合、型の前に#を記述します。

null許容変数の宣言
let str:#String = null

 次のように、nullを許容しない変数に対しnullを代入すると、エラーになります。

#をつけない場合はエラーになる
let str:String = null

 今回の記事のソースは次のコードを変更することで試すことができます。テキストエディタなどで編集し、ブラウザにドラッグするだけで、Curlアプレットを実行できます。

abcと表示するコード(sample.curl)
{curl 6.0 applet}
{curl-file-attributes character-encoding = "shift-jis"}

{value
	let str:String = "abc" || この行を変更する
	str  || 値が表示される
}

1-4 代入

 Curlで代入を行うには、「set」を使用します。

Javaの代入
str = "xyz";
Curlの代入
set str = "xyz"

1-5 final

 変更不可能な値を宣言するには、定数修飾子「constant」を使用します。

Javaの定数宣言
final String abc = "abc";
Curlの変数宣言
let constant abc:String = "abc"

1-6 インスタンス生成

 Javaと同じく、Curlでインスタンスの生成を行うには「new」を使用します。

Javaのインスタンス生成(その1)
Person person = new Person();
Curlのインスタンス生成(その1)
let person:Person = {Person}

 コンストラクタに変数をセットして生成する場合は、次のようになります。

Javaのインスタンス生成(その2)
Person person = new Person("Mike", 22);
Curlのインスタンス生成(その2)
let person:Person = {Person "Mike", 22}

1-7 配列、List

Javaの配列定義(その1)
int[] array = new int[4];
Javaの配列定義(その2)
int[] array = {1, 2, 3, 4}
JavaのList操作
List<Integer> array = new ListArray<Integer>();
array.add(1);
array.add(2);
array.add(3);
array.add(4);

 Curlで配列の定義を行うには、「FastArray-of」もしくは「Array-of」を使用します。

 FastArray-of は Array-of よりも高速ですが、最大容量はその作成時点で固定され、利用できるメソッドのセットもそれほど多くはありません。

Curlの配列定義(その1)
let array:{FastArray-of int} = {{FastArray-of int} max-size = 4}
Curlの配列定義(その2)
let array:{FastArray-of int} = {{FastArray-of int} max-size = 4, 1, 2, 3, 4}
Curlの配列定義(その3)
let array:{Array-of int} = {{Array-of int} 1, 2, 3, 4}
Curlの配列操作
let array:{Array-of int} = {Array-of int}
array.append(1)
array.append(2)
array.append(3)
array.append(4)

1-8 Map

 CurlでMapに値を挿入する際は「set」を使います。値を取得する際には「get」を使うか、直接キーを指定して取得します。

JavaのMap操作(その1)
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);

int aVal = map.get("a");
int cVal = map.get("c");
CurlのMap操作(その1)
let map:{HashTable-of String, int} = {new {HashTable-of String, int}}
map.set "a", 1
map.set "b", 2
set map["c"] = 3

let a:int = {map.get "a"}
let c:int = map["c"]

1-9 コメント

 単一行コメントには、「||」を使用します。また、「|#」から「#|」までがコメントとして扱われます。

Javaの単一行コメント
// コメント
Curlの単一行コメント
|| コメント
Javaの複数行コメント
/*
コメント1
コメント2
*/
Curlの複数行コメント
|#
コメント1
コメント2
#|

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 木村聡(キムラサトシ)

    2000年からJavaによるWeb開発に携わる。Seasarプロジェクトコミッタであり、コミッタとしての経験をもとに現在は仕事としてフレームワークの開発を行っている。 著書に、「Javaフレームワーク開発入門」や「Eclipseで学ぶはじめてのJava」等がある。

バックナンバー

連載:Java開発者のためのCurl入門
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5