为什么这个OpenEdge 10.2B代码有效,而不会产生运行时错误?

时间:2015-02-26 20:56:35

标签: progress-4gl openedge 4gl

这个简单的程序不应该生成运行时错误吗?当我运行它时,屏幕上会显示值4。

RUN pTest ( 2 + 2 ).

PROCEDURE pTest:

  DEF INPUT PARAM cData AS CHAR NO-UNDO.

  DISPLAY cData.

END.

1 个答案:

答案 0 :(得分:2)

因为2 + 2会被投射到角色。

DEFINE PARAMETER的文档说:

"此外,DEFINE和RUN语句中指定的参数类型(INPUT,OUTPUT,INPUT-OUTPUT,RETURN,TABLE,TABLE-HANDLE,DATASET,DATASET-HANDLE和BUFFER)必须一致。相应的数据类型和运行时值也必须足够兼容,以允许AVM执行任何必要的转换。"