JavaFX教程-修改陣列

梧桐雨—168發表於2008-03-18

除了賦值操作(=)之外,JavaFX還提供資料修改操作符(insertdelete),它類似XQuery-Update規範中的語法和語義:

insert語句

可以用下面方式中的任意一種進行宣告:

	insert Expression1 [as first | as last] into Expression2
	insert Expression1 before Expression2
	insert Expression1 after Expression2

insert語句將表示式1求值後的返回結果插入到下面表示式中所描述的位置:

into

表示式2必須指向一個屬性或者變數。如果表示式2指向一個單值屬性,那麼插入的效果等同於賦值操作。

如果指定了as first,那麼插入位置就在表示式2所表示的列表的第一個元素的前面。如果指定了as last,那麼插入位置就在表示式2所表示的列表的最後一個元素的後面。如果沒有明確地指定as first或者as last,則預設為as last

例如:

	var x = [1,2,3];
	insert 12 into x; // yields [1,2,3,12]
	insert 10 as first into x; // yields [10,1,2,3,12]
	insert [99,100] as last into x; // yields [10,1,2,3,12,99,100]

before, after

表示式2必須是在屬性或者變數之上的選擇表示式。如果指定了before,那麼插入位置就是在被選擇的元素之前。如果指定了after,插入位置則在被選擇的元素之後。

例如:

	var x = [1,2,3];
	insert 10 after x[. == 10]; // yields [1,2,3,10]
	insert 12 before x[1]; // yields [1,12,2,3,10]
	insert 13 after x[. == 2]; // yields [1, 12, 2, 13, 3, 10];

top

delete語句

delete語句可以使用下面形式中的一種:

	delete variable
	delete Expression.attribute
	delete variable[predicate]
	delete Expression.attribute[predicate]

前兩種形式將刪除變數或者屬性中的所有元素,它們等價於將變數或者屬性賦值為[]或者null。後兩種形式僅刪除滿足斷言的元素。

例如:

	var x = [1,2,3];
	insert 10 into x; // yields [1,2,3,10]
	insert 12 before x[1]; // yields [1,12,2,3,10]
	delete x[. == 12]; // yields [1,2,3,10]
	delete x[. >= 3]; // yields [1,2]
	insert 5 after x[. == 1]; // yields [1,5,2];
	insert 13 as first into x; // yields [13, 1, 5, 2];
	delete x; // yields []

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13270562/viewspace-209689/,如需轉載,請註明出處,否則將追究法律責任。

相關文章