Progress4gl中的内部过程和函数之间的差异



内部过程和函数都接受参数以提供输出。那么,使用内部程序而不是函数有什么用呢。

当您想要执行某些计算并返回单个值时,会使用用户定义的函数。在这方面,它与内置ABL函数相同,如SUBSTRING或EXP函数。将此计算代码放在FUNCTION块中,而不是在代码中内联,可以将其放在一个位置并多次引用,而不会出现代码重复。

内部过程也是一段完成某些工作的封装代码,但它更通用。虽然函数必须返回单个值,但内部过程可能有也可能没有输入参数或输出参数。

https://docs.progress.com/category/openedge-archives

此外,函数(如方法(参数和返回值类型在编译时进行检查,这在以后的运行时消除了一些潜在的问题。

问题承认函数和内部过程都允许OUTPUT参数,并询问"有什么用;内部过程而不是函数。

对我来说,这意味着海报在考虑总是使用功能和贬低内部程序,并问道:";如果我那样做,我会失去什么">

脑海中浮现两件事:

  1. 与Jean-Christophe Cardot的观点正好相反:您将失去一些关于参数列表的自动类型转换和语法灵活性。有些人对这种灵活性持负面看法。其他人则认为这是积极的。

  2. 你需要";转发声明";您的函数或使用动态调用。使用内部过程,您可以运行它,而无需在代码的早期提供声明。

如果你倾向于认为严格的类型检查是有用的,那么这些可能不是你认为已经失去的好处。如果你喜欢更灵活的行为,那么你可能会后悔选择功能而不是内部程序。

最新更新