为什么此 OpenEdge 10.2B 代码有效,而不生成 运行 次错误?
Why does this OpenEdge 10.2B Code work, and not generate a run-time error?
这个简单的程序不应该产生 运行 次错误吗?当我运行它的时候,屏幕上显示的是4的值。
RUN pTest ( 2 + 2 ).
PROCEDURE pTest:
DEF INPUT PARAM cData AS CHAR NO-UNDO.
DISPLAY cData.
END.
因为 2 + 2 被转换为一个角色。
DEFINE PARAMETER 的文档说:
"In addition, the parameter types (INPUT, OUTPUT, INPUT-OUTPUT, RETURN, TABLE, TABLE-HANDLE, DATASET, DATASET-HANDLE, and BUFFER) specified in the DEFINE and RUN statements must agree. The corresponding data types and run-time values must also be compatible enough to allow the AVM to perform any necessary conversions."
这个简单的程序不应该产生 运行 次错误吗?当我运行它的时候,屏幕上显示的是4的值。
RUN pTest ( 2 + 2 ).
PROCEDURE pTest:
DEF INPUT PARAM cData AS CHAR NO-UNDO.
DISPLAY cData.
END.
因为 2 + 2 被转换为一个角色。
DEFINE PARAMETER 的文档说:
"In addition, the parameter types (INPUT, OUTPUT, INPUT-OUTPUT, RETURN, TABLE, TABLE-HANDLE, DATASET, DATASET-HANDLE, and BUFFER) specified in the DEFINE and RUN statements must agree. The corresponding data types and run-time values must also be compatible enough to allow the AVM to perform any necessary conversions."