0

Shouldn't this simple program generate a run-time error? When I run it, the value of 4 is displayed on the screen.

RUN pTest ( 2 + 2 ).

PROCEDURE pTest:

  DEF INPUT PARAM cData AS CHAR NO-UNDO.

  DISPLAY cData.

END.
4

1 回答 1

2

因为 2 + 2 被投射到一个角色上。

DEFINE PARAMETER 的文档说:

“另外,DEFINE和RUN语句中指定的参数类型(INPUT、OUTPUT、INPUT-OUTPUT、RETURN、TABLE、TABLE-HANDLE、DATASET、DATASET-HANDLE和BUFFER)必须一致。对应的数据类型和run-时间值还必须足够兼容,以允许 AVM 执行任何必要的转换。”

于 2015-02-26T21:32:16.680 回答