FC来自于英文单词Function的缩写,意为函数。和C/PASCAL语言一样,FC同样也支持返回值(Return)和输出参数(Output)。既然他们都可以从函数获取结果,那我们该什么时候使用返回值,又什么时候使用Output呢? 它们之间到底有何区别?
Return和Output的区别如下:
FC只可以有一个Return,但是可以有多个Output参数;
Return可以用于函数内联,减少了编程工作量。
Return不支持个别复杂类型;
从下图可以看出,每个FC只可以有一个返回值。因此如果需要输出的参数比较多的话只能用Output了,但是如果只有一个输出值的话建议优先考虑Return。使用Return输出的话也很简单,直接给参数(FC名称,下图中的FC1就是该FC的名称)赋值即可。
图1 Return使用
我们在调用带返回值的FC时需要定义一个与该FC的返回值类型相同的变量。在下图中临时变量temp1被定义为和“FC1”返回值同样类型的Word。
图2 调用带返回值的FC
之所以我们推荐在只有一个输出参数的时候使用Return是因为这样的话该FC还可以实现内联。在下面的示例中,“FC2”是我们定义的另一个FC,它有两个类型为WORD的输入参数,参见下图所示。
图3 函数FC2的接口
我们在调用FC2的时候可以直接把FC1作为参数传递,因为它的返回值和FC2的输入参数的数据类型一样,也是WORD。
图4 FC内联
这样的内联编程方式显然比创建一个中间变量来作为中转要简洁的多。
关于它们之间区别的最后一点就是Return对有的数据类型不支持,比如我们无法返回一个类型为Variant的值。
图5 Return不支持Variant类型
但是对于Output来说,几乎所有的数据类型它都可以支持。从下图可以看出在Output中,无论是Variant还是Any、Array等都可以使用。
图6 Output支持所有的数据类型