这个简单的程序不应该生成运行时错误吗?当我运行它时,屏幕上会显示值4。
RUN pTest ( 2 + 2 ).
PROCEDURE pTest:
DEF INPUT PARAM cData AS CHAR NO-UNDO.
DISPLAY cData.
END.
答案 0 :(得分:2)
因为2 + 2会被投射到角色。
DEFINE PARAMETER的文档说:
"此外,DEFINE和RUN语句中指定的参数类型(INPUT,OUTPUT,INPUT-OUTPUT,RETURN,TABLE,TABLE-HANDLE,DATASET,DATASET-HANDLE和BUFFER)必须一致。相应的数据类型和运行时值也必须足够兼容,以允许AVM执行任何必要的转换。"