天天看點

第三十一章 Caché 函數大全 $LISTGET 函數

第三十一章 Caché 函數大全 $LISTGET 函數

大綱

參數

描述

list

position

default

示例

傳回清單中的元素,如果請求的元素未定義,則傳回指定的預設值。

list 計算結果為有效清單的表達式。

position 可選—一個整數代碼,用于指定清單中的起始位置。允許的值為n(從清單的開頭算起),*(清單的最後一個元素)和* -n(從清單的末尾算起的相對偏移量)。是以,清單中的第一個元素為1,第二個元素為2,清單中的最後一個元素為*,倒數第二個元素為* -1。如果position是小數,則将其截斷為整數部分。如果省略position,則預設為1。-1可以在較舊的代碼中使用,以指定清單中的最後一個元素。棄用的-1不應與*或* -n相對偏移文法結合使用。

default 可選—一個表達式,提供如果list元素具有未定義值時要傳回的值。如果省略預設值,則預設為空字元串(“”)。必須指定位置參數值才能指定預設值。

$LISTGET傳回指定清單中的請求元素。如果position的值引用了不存在的元素或辨別了具有未定義值的元素,則傳回預設值。

$LISTGET函數與$LIST函數的一參數形式和二參數形式相同,除了在可能導緻$LIST産生<NULL VALUE>錯誤的條件下,$LISTGET傳回一個預設值。

可以使用$LISTBUILD或$LISTFROMSTRING建立清單,或使用$LIST從另一個清單中提取清單。空字元串(“”)也被視為有效清單。可以使用$LISTVALID來确定list是否為有效清單。無效的清單會導緻$LISTGET生成錯誤。

要傳回的清單元素的位置(元素計數)。元素以字元串形式傳回。清單元素從1開始計數。如果省略position,則$LISTGET傳回第一個元素。

如果position為n(正整數),則 L I S T G E T 從 列 表 的 開 頭 開 始 計 數 元 素 。 如 果 p o s i t i o n 大 于 l i s t 中 的 元 素 數 , 則 LISTGET從清單的開頭開始計數元素。如果position大于list中的元素數,則 LISTGET從清單的開頭開始計數元素。如果position大于list中的元素數,則LISTGET傳回預設值。

如果position為*,則$LIST傳回清單中的最後一個元素。

如果position為* -n(星号後跟一個負整數),則$LIST通過相對于清單末尾的相對偏移量來計數元素。是以,*-0是清單中的最後一個元素,*-1是倒數第二個清單元素(從末尾偏移1)。如果* -n偏移量指定清單的第一個元素之前的位置(例如,對于3元素的清單,則為* -3),則$LISTGET傳回預設值。如果* -n偏移量指定了一個在其之前的位置(例如,對于3元素清單,則為* -4),則Caché會發出 <RANGE> 錯誤。

如果position為0或-0,則$LISTGET傳回預設值。

position參數的數字部分計算為整數。 Caché将一個小數部分截斷為其整數部分。将位置指定為-1(訓示清單的最後一個元素)已被棄用,不應在新代碼中使用;小于-1的位置負數會産生錯誤。

使用變量指定* -n時,必須始終在參數本身中指定星号和符号字元。

以下是* -n的有效規格:

計算結果為字元串或數字值的表達式。如果由position指定的元素不存在,則$LISTGET傳回預設值。如果position超出清單的末尾,position指定的元素沒有值,position為0或list不包含任何元素,則可能發生這種情況。但是,如果位置* -n指定清單的第0個元素之前的位置,則Caché會發出 <RANGE> 錯誤。

以下示例中的$LISTGET函數傳回由position指定的清單元素的值(位置的預設值為1):

以下示例中的$LISTGET函數在遇到清單中未定義的第二個元素時傳回一個值。前兩個傳回問号(?),使用者已将其定義為預設值。後兩個傳回空字元串,因為使用者尚未指定預設值:

以下示例傳回清單中的所有元素值。它還列出了清單結尾之前和之後的位置。如果不存在值,則傳回預設值:

以下示例以相反的順序傳回清單中的所有元素值。在省略值的情況下,它将傳回預設值:

以下示例中的$LISTGET函數傳回空字元串的list元素值;它們不傳回預設值:

以下示例中的$LISTGET函數均傳回預設值: