进行中的动态功能
Dynamic Functions In progress
什么是Dynamic function in progress 4gl?试了很多都搞不清楚understanding.Please举例说明。我是这门语言的大佬。
动态函数是一种动态调用函数调用的方式。编译器对您的工作了解有限,因此如果您不使用正确的输入和输出,您将得到 运行 时间错误。
运行根据用户输入的不同函数的一个示例:
DEFINE VARIABLE iFunc AS INTEGER NO-UNDO.
DEFINE VARIABLE iReturn AS INTEGER NO-UNDO.
FUNCTION f1 RETURNS INTEGER :
RETURN 1.
END FUNCTION.
FUNCTION f2 RETURNS INTEGER :
RETURN 2.
END FUNCTION.
FUNCTION f3 RETURNS INTEGER :
RETURN 3.
END FUNCTION.
FUNCTION exp RETURNS INTEGER (INPUT piInt AS INTEGER):
RETURN piInt * piInt.
END FUNCTION.
REPEAT :
UPDATE iFunc LABEL "What function?".
IF iFunc < 1 OR iFunc > 3 THEN LEAVE.
MESSAGE "Return value: " DYNAMIC-FUNCTION ("f" + STRING(iFunc)) VIEW-AS ALERT-BOX.
END.
函数获取输入的另一个示例:
FUNCTION exp RETURNS INTEGER (INPUT piInt AS INTEGER):
RETURN piInt * piInt.
END FUNCTION.
MESSAGE "10 x 10 = " DYNAMIC-FUNCTION ("exp", 10) VIEW-AS ALERT-BOX.
对同一个 "exp" 函数的调用将编译但会在 运行 时间内崩溃。该代码发送一个字符串 ("HELLO") 作为输入,函数需要一个整数。
MESSAGE "10 x 10 = " DYNAMIC-FUNCTION ("exp", "HELLO") VIEW-AS ALERT-BOX.
什么是Dynamic function in progress 4gl?试了很多都搞不清楚understanding.Please举例说明。我是这门语言的大佬。
动态函数是一种动态调用函数调用的方式。编译器对您的工作了解有限,因此如果您不使用正确的输入和输出,您将得到 运行 时间错误。
运行根据用户输入的不同函数的一个示例:
DEFINE VARIABLE iFunc AS INTEGER NO-UNDO.
DEFINE VARIABLE iReturn AS INTEGER NO-UNDO.
FUNCTION f1 RETURNS INTEGER :
RETURN 1.
END FUNCTION.
FUNCTION f2 RETURNS INTEGER :
RETURN 2.
END FUNCTION.
FUNCTION f3 RETURNS INTEGER :
RETURN 3.
END FUNCTION.
FUNCTION exp RETURNS INTEGER (INPUT piInt AS INTEGER):
RETURN piInt * piInt.
END FUNCTION.
REPEAT :
UPDATE iFunc LABEL "What function?".
IF iFunc < 1 OR iFunc > 3 THEN LEAVE.
MESSAGE "Return value: " DYNAMIC-FUNCTION ("f" + STRING(iFunc)) VIEW-AS ALERT-BOX.
END.
函数获取输入的另一个示例:
FUNCTION exp RETURNS INTEGER (INPUT piInt AS INTEGER):
RETURN piInt * piInt.
END FUNCTION.
MESSAGE "10 x 10 = " DYNAMIC-FUNCTION ("exp", 10) VIEW-AS ALERT-BOX.
对同一个 "exp" 函数的调用将编译但会在 运行 时间内崩溃。该代码发送一个字符串 ("HELLO") 作为输入,函数需要一个整数。
MESSAGE "10 x 10 = " DYNAMIC-FUNCTION ("exp", "HELLO") VIEW-AS ALERT-BOX.