0

Fe 我想实现 inc 功能:

FUNCTION inc RETURNS INT (INPUT-OUTPUT i AS INT, AddExpression AS INT):
  i = i + AddExpression.
END FUNCTION.

像这样使用它:

inc(tt-data.qty,1).

我没有找到如何覆盖我的DEC数据类型函数或如何将两者合二为一。如果可能的话,我还希望我的函数能够处理CHAR- 种类的ADD-ENTRY. 也许这个基本功能已经有人实现了?OEHive 上的 STLib 之类的东西。

4

1 回答 1

3

普通的旧用户定义函数只能有一个签名。您的函数定义有点“关闭”。您正在使用输入输出参数(这不是“错误”但很奇怪)并且您没有返回值 - 这错误的。它应该如下所示:

function inc returns integer ( input-output i as integer, addExpression as integer ):
  i = i + addExpression.
  return i.
end.

过程的数据类型规则稍微宽松一些,并且会自动进行一些类型转换(例如隐含的十进制到整数的转换)。例如,这将支持传递自动舍入的小数:

procedure z:

  define input-output parameter i as integer no-undo.
  define input parameter x as integer.

  i = i + x.

  return.

end.

如果将函数创建为类的方法,则可以重载方法签名。

这些方面的东西(未经测试):

class X:
  method public integer inc( input-output i as integer, input addExpression as integer ):
    i = i + addExpression.
    return i.
  end. 
  method public integer inc( input-output i as integer, input addExpression as character ):
    i = i + integer( addExpression ).
    return i.
  end. 
end.
于 2013-08-19T13:00:48.007 回答