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