6.列
先に述べた5つの基本データ型に加え、JavaFX台本型プログラミング言語は、列として知られたデータ構造を提供する。列はJavaプログラミング言語の配列に似ているが、異なる点もある。
次のコードはある例を示す。
var weekDays = ["Mon","Tue","Wed","Thur","Fri"];
var days = [weekDays, ["Sat","Sun"]];
列は、オブジェクトの順序付けられた一覧を表す。しかしながら、列そのものはオブジェクトではないため、入れ子構造を取ることはできない。列は、値により等価であるとみなされる。すなわち、列の長さが等しく、それらの要素が同一であるとき、列は等しくなる。(上記のdaysの初期化におけるように)入れ子になった列を形成する式は、自動的に平準化される。
days == ["Mon","Tue","Wed","Thur","Fri","Sat","Sun"]; // trueを返す
さらに、単一のオブジェクトは、1つのオブジェクトからなる列に等価である。
1 == [1]; // trueを返す
列の型は、「[]」注釈を用いて宣言される。
var xs:Number[]; // 数の列
var strs:String[]; // 文字列の列
列の要素は共通の型を持たねばならず、その型はオブジェクトであっても良い。列は、Javaプログラミング言語の配列のように、索引付けることがきる。
var wednesday = days[2];
次のように、その要素が等差数列をなしている列のための、「..」を用いた簡便な表記法もある。
var nums = [1..100];
この簡略記法により、各要素を手入力する必要がなくなる。
[]演算子は、述語形式の選択も表す。述語は、次の形式を取る。
列[変数名| 論理式]
例:
var nums = [1,2,3,4];
var numsGreaterThanTwo = nums[n|n > 2];
上記の式は、元の列の要素の内、述部の条件を満たすものから構成された新たな列を返す。
最後に、部分列は、列の一部を利用できるようにする。
seq[a..b] // 索引aとbの間(両端含む)の列
seq[a..<b] // 索引a(含む)とb(含まない)の間の列
seq[a..] // seq[a..<sizeof seq]に同じ
seq[a..<] // 一貫性を保つため、seq[a..<sizeof seq-1] に同じ
列や部分列を、利用および/または変更するいくつもの異なる方法がある。次の章では、JavaFX台本型プログラミング言語の一覧内包の特徴について探求する。
0 件のコメント:
コメントを投稿