正如你所期待的那样,一旦定义了一个新函数,你既可以将它用作表达式的一部分,也可以用现有的函数构造新的函数。举个例子,给定圆心和圆周上的一点,如何计算圆的面积?
假设圆心坐标保存在变量xc和yc中,而圆周上那点的坐标是xp和yp。第一步就是计算圆的半径,也就是这两点间的距离。幸运的是,我们前面定义的distance函数就是计算两点间距离的。
double radius = distance(xc,yc,xp,yp);
第二步就是使用半径计算圆面积并返回。
double result = area(radius);
return result;
然后将这两步封装在一个函数中:
double fred(double xc,double yc,double xp,double yp){
double radius = distance(xc,yc,xp,yp);
double result = area(radius);
return result;
}
函数名fred可能看起来很奇怪。我下一节再解释原因。
临时变量radius和area对开发和调试而言是有意义的,程序工作正常之后我们就可以通过组合函数调用使代码更简洁:
double fred(double xc,double yc,double xp,double yp){
return area(distance(xc,yc,xp,yp));
}