Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

データ型とデータ値

この章では、Basic のさまざまなデータ型の簡単な概要を説明します。

数値

数値は数字の連続で、小数点が含まれることがあります。Basic は、数値を表現する指数表記もサポートします。

数値の例は以下のとおりです。

PrintLn 1
PrintLn 1.1
PrintLn 1E10

文字列

Basic での文字列は二重引用符 (") で囲まれ、一連の文字、数字、および句読点を表します。文字列の最小長はゼロです。既定では、文字列の最大長は 32,000 文字です。使用している環境で長い文字列を有効化している場合、文字列の最大長は 3,641,144 文字です。詳細は、"Caché プログラミング入門ガイド" の “長い文字列演算の使用可能化” を参照してください。

文字列の例は以下のとおりです。

PrintLn "Hello"
PrintLn ""
PrintLn "Goodbye"

二重引用符文字をリテラルとして文字列に記述するには、次の例に示すように 2 つの二重引用符文字のペアを使用します。

PrintLn "Hello ""World"""

連結演算子 (&) を使用して、文字列を連結することができます。

PrintLn "Hello" & " " & "Goodbye"

Caché Basic には、専門的な文字列演算が多数あります。文字列演算の詳細は、"Caché Basic リファレンス" を参照してください。

永続多次元配列 (グローバル)

グローバルは、多次元データベースのスパース配列です。データは、任意の添え字と共に、グローバルに保存することができます。Caché の添え字には、タイプはありません。

グローバルは、グローバル変数名がキャレット記号 (^) で開始する以外は、他の配列タイプと同一です。

グローバルの例は以下のとおりです。まず、グローバル ^x を設定するために以下の例を実行します。

^x = 10
PrintLn "^x has been defined"

次に、^x の値を調べるために以下の例を実行します。

PrintLn "The value of ^x is: " & ^x

同様に、グローバルは配列であるため、配列参照を設定できます。

^y("string",1) = 2
^y("string","a") = "b"
PrintLn "Values in ^y are " & ^y("string",1) & " and " & ^y("string","a")

配列の詳細は、このドキュメントの “配列” の章を参照してください。グローバルの詳細情報は、"Caché グローバルの使用法" を参照してください。

NULL

NULL キーワードは、Basic のこのバージョンではサポートされていません。

未定義

Caché Basic の変数は、宣言、または定義の必要はありません。変数に値を代入することで変数は定義されますが、この最初の代入まで、この変数に対するすべての参照は未定義となります。Exists 関数を使用して、変数が定義済み、または未定義かを決定することができます。

PrintLn "Does x exist? " & Exists(x)
x = 10

PrintLn "How about now? " & Exists(x)

日付

日付値は、1840 年 12 月 31 日から 9999 年 12 月 31 日までの範囲内の有効な日付を表します。

Now 関数を使用すると、現在の日付と時刻が返されます。

today = Now()
PrintLn "Today is: " & today

同様に、Date 関数と Time 関数を使用して、現在の日付と時刻を取得することもできます。

PrintLn "Date is: " & Date()
PrintLn "Time is: " & Time()

さまざまな関数で、日付値からコンポーネント情報を抽出することができます。その関数は、DayHourMinuteMonthSecondWeekday、および Year です。

today = Now()
PrintLn "Today is: " & today
PrintLn "Year: " & Year(today)
PrintLn "Month: " & Month(today)
PrintLn "Day: " & Day(today)
PrintLn "Weekday: " & Weekday(today)
PrintLn "Hour: " & Hour(today)
PrintLn "Minute: " & Minute(today)
PrintLn "Second: " & Second(today)

オブジェクト

オブジェクト値は、メモリ内のオブジェクトのインスタンスを参照します。オブジェクト値を任意のローカル変数に代入できます。

person = New Sample.Person()
PrintLn person

ドット構文を使用して、メソッドとオブジェクトのプロパティを参照できます。

person.Name = "El Vez"

IsObject 関数を使用して、変数がオブジェクトを含むかどうかを判断します。

str = "A string"
person = New Sample.Person()
tStatement = New %SQL.Statement()

PrintLn "Is string an object? " & IsObject(str)
PrintLn "Is person an object? " & IsObject(person)
PrintLn "Is tStatement an object? " & IsObject(tStatement)

グローバルにはオブジェクト値を代入できません。代入すると、実行時エラーが発生します。

オブジェクト値を変数 (あるいはオブジェクト・プロパティ) に代入すると、オブジェクトの内部参照カウントがインクリメントされるという悪影響があります。オブジェクトの参照番号が 0 に到達した場合、Caché は自動的にそのオブジェクトを破棄します (%OnClose メソッドを呼び出し、そのオブジェクトをメモリから削除します)。

FeedbackOpens in a new tab