Progress4gl 中内部程序和函数之间的区别?
Difference between the internal procedures and functions in Progress4gl?
内部过程和函数都接受参数以提供输出。那么使用内部过程而不是函数有什么用呢
当您想要执行一些计算和 return 单个值时,使用 user-defined 函数。在这方面,它与 built-in ABL 函数相同,如 SUBSTRING 或 EXP 函数。将此计算代码放在 FUNCTION 块中而不是代码中的内联允许您将它放在一个地方并多次引用它而无需代码重复。
内部过程也是封装了一段代码,做一些工作,但更general-purpose。虽然函数必须 return 单个值,但内部过程可能有也可能没有输入参数或输出参数。
还在编译时检查函数(如方法)参数和 return 值类型,这消除了稍后 运行 时的一些潜在问题。
问题承认函数和内部过程都允许输出参数,并询问内部过程“有什么用”而不是函数。
对我来说,这意味着张贴者一直在考虑使用函数和弃用内部程序,并在问:“如果我这样做我会失去什么?”
有两件事spring要注意:
与 Jean-Christophe Cardot 的观点正好相反:您将失去一些自动类型转换和参数列表的句法灵活性。有些人以负面的眼光看待这种灵活性。其他人认为这是积极的。
您需要“前向声明”您的函数或使用动态调用。使用内部过程,您可以 运行 它而无需在代码的前面提供声明。
如果您倾向于认为严格的类型检查很有用,那么这些可能不是您认为会失去的好处。如果您更喜欢更灵活的行为,那么您可能会后悔选择函数而不是内部过程。
内部过程和函数都接受参数以提供输出。那么使用内部过程而不是函数有什么用呢
当您想要执行一些计算和 return 单个值时,使用 user-defined 函数。在这方面,它与 built-in ABL 函数相同,如 SUBSTRING 或 EXP 函数。将此计算代码放在 FUNCTION 块中而不是代码中的内联允许您将它放在一个地方并多次引用它而无需代码重复。
内部过程也是封装了一段代码,做一些工作,但更general-purpose。虽然函数必须 return 单个值,但内部过程可能有也可能没有输入参数或输出参数。
还在编译时检查函数(如方法)参数和 return 值类型,这消除了稍后 运行 时的一些潜在问题。
问题承认函数和内部过程都允许输出参数,并询问内部过程“有什么用”而不是函数。
对我来说,这意味着张贴者一直在考虑使用函数和弃用内部程序,并在问:“如果我这样做我会失去什么?”
有两件事spring要注意:
与 Jean-Christophe Cardot 的观点正好相反:您将失去一些自动类型转换和参数列表的句法灵活性。有些人以负面的眼光看待这种灵活性。其他人认为这是积极的。
您需要“前向声明”您的函数或使用动态调用。使用内部过程,您可以 运行 它而无需在代码的前面提供声明。
如果您倾向于认为严格的类型检查很有用,那么这些可能不是您认为会失去的好处。如果您更喜欢更灵活的行为,那么您可能会后悔选择函数而不是内部过程。