10-20-2011, 04:18 PM,
(This post was last modified: 10-20-2011, 04:31 PM by hokada.)
|
|||||
|
|||||
Java開発者のためのCurl言語講座(データ型)
続けてデータ型の記事を投稿します。
<プリミティブ型> まずはプリミティブ型ですが、多くのJavaと同様の型を持っています。 Javaでは、int, byte, short, long, char, float, double, booleanですが、Curlでは、int(もしくはint32), byte(もしくはuint8), int16, int64, char, float, double, boolです。 また、Curlではunsignedも持っています。uint(uint32), uint8, uint16, uint64です。 但し、Javaのようにプリミティブ型のラッパークラスは標準では持たないです。もし作るなら、例えばこんな感じになります。 Code: {define-class public Integer 使うときは、こんな感じです。 Code: let i1:Int = 10000 クラスの作り方について詳しくはまた別の回でご説明したいと思いますが、もしラッパークラスが必要だというニーズがあれば、我々で作って提供することも検討しますので、コメントください。 <文字列> 次に文字列ですが、これはJavaと同様でStringです。また、JavaのStringBufferにあたるものはStringBufです。 <日付> 日付型については仕様が異なってきますが、JavaではDate, Time, Calendarという型がありますが、CurlはDateTimeという型になります。 Code: def now = {DateTime} <数量> Javaにはない機能で、Curlでは"数量"という特別な型の値をサポートします。例えば、距離とか時間とかです。 Code: def v1 = 2.5cm || センチメートル この時間(Time)と先ほどのDateTimeを使って、時間の加算・減算なども可能となっています。 Code: let dt:DateTime = {DateTime} <配列・リスト・連想配列> 配列はJavaではこんな感じ。 Code: int[] array = new int[10]; Curlでは、FastArray-ofというものに相当しますが、これはクラスとなっており、ちょっと書くのがめんどくさくて Code: def array = {{FastArray-of int} max-size = 10} リストは、JavaではList/ArrayListをよく利用すると思いますが、CurlではArray-ofというものに相当します。また、連想配列はJavaではMap/HashMapなどで、CurlはHashTable-ofなどに相当します。 Code: List list = new ArrayList(); Javaでは、ジェネリクスにプリミティブ型は指定できませんが、このArray-ofは指定が可能です。 Code: def list = {{Array-of int}} <Curl独自のその他のデータ型> Javaにはないもので、any型というものがあります。 これはObject型とは違ってプリミティブも含めてすべて格納できる特別な型です。 但し、メモリを多く利用するので、多用はなるべく避けた方がよいです。 また、Curlは型が厳密な言語で、nullを許容するかどうかということも宣言する必要があります。例えば、Javaでは”String str = null;”というコードはOKですが、Curlでは、"let str:String = null"は許されません。この場合、nullを許容するよ!ということをシャープ("#")を利用して、宣言する必要があります。 Code: let str:#String = null 最後に、浮動小数点の演算で、double型を利用すると誤差が発生することがありますので、JavaですとBigDecimalを利用することがありますが、Curlでも類似のDecimal型というものをバージョン8でリリースしています。バージョン8以前を利用したい場合は、別途オープンソースで、BigDecimalというものをWSDK やCurl ORB というオープンソースの中で提供しています。 |
|||||
« Next Oldest | Next Newest »
|
Users browsing this thread:
2 Guest(s)
2 Guest(s)