描述:
定义子程序功能块。
语法:
func fn(a=v,...)
…
{return xi}
备注:
定义一个子程序功能块,完成计算后,可以返回或者不返回结果。
子程序名称为fn,由func fn(a=v,...)作为起始符,子程序内容是以func fn(a=v,...)所在单元格为主格的代码块。通过return返回函数的运算结果并结束函数代码块,子程序执行完未碰到return将缺省返回代码块中最后一个计算格值。
参数:
fn |
子程序名称。 |
a |
定义参数。 |
v |
参数a的缺省值。 |
选项:
@i |
子程序中无递归计算时,使用该选项可提高性能。 |
@m |
子程序中只有一句表达式时,使用该选项可提高性能。 |
@o |
使用@o选项定义子程序,调用式中fn@o中的o将作为第一个(字符串)参数,调用式中没有指定选项时则认为第一个(字符串)参数传递为空值。 |
返回值:
程序的计算结果
示例:
|
A |
B |
|
1 |
func ft(arg1=3) |
|
定义一个名为ft的子程序,arg1为子程序中的参数,arg1参数值缺省为3,程序计算完成后返回B2的值。 |
2 |
|
=arg1*10 |
|
3 |
|
return B2 |
|
4 |
=ft(2) |
|
调用ft子程序,传入参数值为2,结果返回20。 |
5 |
=ft() |
|
调用ft子程序,参数使用缺省值,结果返回30。 |
使用@o选项:
|
A |
B |
|
1 |
func ft@o(opt,s) |
|
使用@o方式定义一个名为ft的子程序,opt、s为子程序中的参数; 子程序ft支持使用@u、@l选项,@u时将字符串s转为大写,@l时将字符串s转为小写,选项缺省时返回字符串s的长度。 |
2 |
|
=if(opt=="u":upper(s),opt=="l":lower(s);len(s)) |
|
3 |
|
return B2 |
|
4 |
=ft@l("Hello") |
|
调用ft子程序,使用@l选项,将字符串"Hello"转为小写,结果返回:"hello"。 |
5 |
=ft@u("Hello") |
|
调用ft子程序,使用@u选项,将字符串"Hello"转为大写,结果返回:"HELLO"。 |
6 |
=ft("Hello") |
|
调用ft子程序,选项省略时计算字符串"Hello"的长度,结果返回:5。 |