第四十章 Caché 函式大全 $METHOD 函式
第四十章 Caché 函式大全 $METHOD 函式
支援對例項方法的呼叫。
大綱
$METHOD(instance, methodname, arg1, arg2, arg3, ... )
引數
- instance 計算結果為物件引用的表示式。表示式的值必須是類的記憶體中例項的值。
- methodname 計算結果為字串的表示式。字串的值必須與作為第一個引數給定的類例項中現有方法的名稱完全匹配。
- arg1, arg2, arg3, … 要替換指定方法的引數的一系列表示式。表示式的值可以是任何型別。實現者有責任確保提供的表示式在型別上匹配,並且具有該方法期望的邊界的值。(如果指定的方法不需要引數,則函式呼叫中不需要使用類名和方法名以外的任何內容。如果方法需要引數,則管理必須提供的內容的規則是目標方法的規則。)
描述
$method
為指定類的指定例項執行命名例項方法。
此函式允許ObjectScript程式呼叫某個類的現有例項中的任意方法。由於第一個引數必須是對物件的引用,因此它是在執行時計算的。方法名稱可以在執行時計算,也可以作為字串文字提供。如果方法採用引數,則從方法名稱後面的引數列表中提供這些引數。最多可以向該方法傳遞255個引數值。如果方法需要引數,則控制必須提供的內容的規則是目標方法的規則。要呼叫類方法而不是例項方法,請使用$CLASSMETHOD
函式。
$method
作為函式或過程的呼叫決定了目標方法的呼叫。可以使用do
命令呼叫$method
,丟棄返回值。
當在類例項的一個方法中使用來引用該例項的另一個方法時,$method
可能會省略例項。但是,仍然需要通常跟在例項後面的逗號。
如果嘗試呼叫不存在的方法或被宣告為類方法的方法,則會導致 <METHOD DOES NOT EXIST>
錯誤。
示例
以下示例顯示了用作功能的$METHOD
:
/// d ##class(PHA.TEST.Function).METHOD()
ClassMethod METHOD()
{
SET ListOfStuff = ##class(%Library.ListOfDataTypes).%New()
FOR i = "First", "Second", "Third", "Fourth"{
DO $METHOD(ListOfStuff, "Insert", i _ "-Element")
}
SET methodname = "Count"
SET elements = $METHOD(ListOfStuff, methodname)
WRITE "Elements: ",elements,!
SET i = $RANDOM(elements) + 1
WRITE "Element #", i , " = " , $METHOD(ListOfStuff,"GetAt", i), !
}
DHC-APP>d ##class(PHA.TEST.Function).METHOD()
Elements: 4
Element #1 = First-Element
DHC-APP>d ##class(PHA.TEST.Function).METHOD()
Elements: 4
Element #4 = Fourth-Element
DHC-APP>d ##class(PHA.TEST.Function).METHOD()
Elements: 4
Element #2 = Second-Element
相關文章
- 第104章 Caché 函式大全 $ZF 函式函式
- 第111章 Caché 函式大全 $ZNAME 函式函式
- 第六十三章 Caché 函式大全 $SORTEND 函式函式
- 【函式】ORACLE函式大全函式Oracle
- MySQL函式大全(字串函式,數學函式,日期函式,系統級函式,聚合函式)MySql函式字串
- Oracle 函式大全(字串函式,數學函式,日期函式,邏輯運算函式,其他函式)Oracle函式字串
- oracle函式大全-字串處理函式Oracle函式字串
- PHP函式大全PHP函式
- Hive函式大全Hive函式
- oralce函式大全函式
- vfp函式大全函式
- Oracle 函式大全Oracle函式
- oracle函式大全Oracle函式
- mysql函式大全MySql函式
- oracle 10g函式大全--聚合函式Oracle 10g函式
- oracle 10g函式大全--分析函式Oracle 10g函式
- oracle 10g函式大全--其他函式Oracle 10g函式
- PHP常用函式大全PHP函式
- javascript常用函式大全JavaScript函式
- oracle plsql函式大全OracleSQL函式
- ORACLE函式大全(轉)Oracle函式
- MySQL 聚合函式大全MySql函式
- MySQL 字串函式大全MySql字串函式
- Slq Server 函式大全Server函式
- oracle 10g函式大全–日期型函式Oracle 10g函式
- oracle 10g函式大全--字元型函式Oracle 10g函式字元
- oracle 10g函式大全--日期型函式Oracle 10g函式
- oracle 10g函式大全--轉換函式Oracle 10g函式
- ORACLE函式介紹第四篇 非著名函式之聚合函式Oracle函式
- oracle 10g函式大全--數值型函式Oracle 10g函式
- 第十章 MySQL 常用函式MySql函式
- Js字串操作函式大全JS字串函式
- JavaScript 工具函式大全(新)JavaScript函式
- Pyhton內建函式大全函式
- MySQL C API函式大全MySqlAPI函式
- MySQL 數字函式大全MySql函式
- DB2函式大全DB2函式
- C++篇:第四章_函式_知識點大全C++函式