第四十章 Caché 函数大全 $METHOD 函数

2020-09-30  本文已影响0人  Cache技术分享

第四十章 Caché 函数大全 $METHOD 函数

支持对实例方法的调用。

大纲

$METHOD(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
上一篇下一篇

猜你喜欢

热点阅读