有些开发者会用“入参”和“出参”来描述函数、方法或接口的参数和返回值。尽管我们基本都知道“入参”就是方法的参数,“出参”就是返回值。但是对于一些起步就是JAVA的开发者来说,可能并不清楚这两个名词的由来。这篇文章就来分享一下关于“入参”和“出参”的背景知识。
当使用C语言编程时,我们会这样定义函数:
int foo(int arg){
return arg+1;
}
函数可以有若干参数和一个返回值。由于C语言不是面向对象语言,它没有封装的特性,当我们要返回两个值的时候,就只能用指针变量作为参数来“存放”要返回的值:
void foo(int arg0, int *arg1, int *arg2){
arg1 = arg0+1;
arg2 = arg0+2;
}
这里的参数 arg1 和 arg2 虽然是函数参数,但其意义并不是传递原始数据,而是作为处理后数据的存放容器,本质上就是返回值。
由于C语言的这个“历史典故”,有时候在设计API接口或者方法时,有人就会把返回值称作“出参”。而在JAVA中,除了递归方法,很少会使用“出参”的设计,而是把多个返回值封装为类。