Rexx - 函数
Rexx 中的代码通常分为函数和子例程。 使用函数有助于将代码分成更多的逻辑单元。 让我们详细看看这些函数。
定义函数
函数声明的语法如下 −
FunctionName: PARSE ARG arguement1, arguement2… arguementN Return value
其中,
FunctionName − 这是分配给该函数的名称。
PARSE ARG − 这些是 Rexx 中的关键字,用于提及参数正在传递给函数。
arguement1, arguement2… arguementN − 这些是传递给函数的参数。
返回值 − 这是函数返回的值。
以下程序是如何在 Rexx 中使用函数的简单示例。
/* 主程序 */ say add(5,6) exit add: PARSE ARG a,b return a + b
上述程序需要注意以下几点 −
我们正在定义一个名为 add 的函数,它接受 2 个参数 a 和 b。
该函数使用 return 语句返回 a 和 b 的和。
exit 语句必须用于表示主程序的结束。
上述程序的输出如下 −
11
使用参数
在 Rexx 中,有一些特定的函数可以与参数一起使用。 让我们看几个这样的论点。
arg
此方法用于返回为函数定义的参数数量。
语法 −
arg()
参数 − None
返回值 − 此方法返回为函数定义的参数数量。
示例 −
/* 主程序 */ say add(5,6) exit add: PARSE ARG a,b say arg() return a + b
输出 − 当我们运行上面的程序时,我们将得到以下结果。
2 11
arg(index)
该方法用于返回特定位置处参数的值。
语法 −
arg(index)
参数 −
Index − 要返回的参数的索引位置。
返回值 − 此方法返回特定位置处参数的值。
示例 −
/* 主程序 */ say add(5,6) exit add: PARSE ARG a,b say arg(1) return a + b
输出 − 当我们运行上面的程序时,我们将得到以下结果。
5 11
递归函数
递归函数或例程是调用自身的函数或例程。 任何递归函数都可以以传统的非递归方式(或迭代)进行编码,但有时递归提供了更好的问题解决方案。 并非所有编程语言都支持递归; 雷克斯做到了。
让我们看一下在 Rexx 中使用递归函数的著名阶乘程序的示例。
/* 主程序 */ do n = 1 to 5 say 'The factorial of' n 'is:' factorial( n ) end return /* 求阶乘的函数 */ factorial : procedure n = arg(1) if n = 1 then return 1 return n * factorial( n - 1 )
上述程序的输出如下 −
The factorial of 1 is: 1 The factorial of 2 is: 2 The factorial of 3 is: 6 The factorial of 3 is: 24 The factorial of 3 is: 120