这是为软件考古学家准备的!
在你问我为什么还要费心尝试让它发挥作用之前,这仅仅是因为我可以——我认为这是一个非常好的借口!
我发现以下程序代码使用 VAX PASCAL 编译(并按预期运行)..
PROCEDURE format(number : INTEGER);
VAR
result : STRING(16);
BEGIN
:
:
writeln(result);
END.
但是,如果将其转换为函数并尝试将结果作为字符串返回,它将无法编译。
FUNCTION format(number : INTEGER) : STRING(16);
VAR
result : STRING(16);
BEGIN
:
:
format := result;
END.
该错误表明该错误位于函数的类型定义处。
FUNCTION format(number : INTEGER) : STRING(16);
1
PASCAL-E-TYPCNTDISCR, Type can not be discriminated in this context
我尝试使用 VARYING 和 ARRAY 类型而不是 STRING,但它们也不起作用。不幸的是,我在 SYS$EXAMPLES 或我找到的 bitavers 手册中找不到返回 STRING 的函数示例。
希望有人比我有更好的记忆力。
谢谢