首页 新闻 搜索 专区 学院

On java 8 lamder递归代码详解?

0
悬赏园豆:20 [已关闭问题] 关闭于 2020-06-14 15:55

如下:

interface IntCall {
  int call(int arg);
}
public class RecursiveFactorial {
  static IntCall fact;
  public static void main(String[] args) {
    fact = n -> n == 0 ? 1 : n * fact.call(n - 1);//这句不理解,还劳请博友详解
    for(int i = 0; i <= 10; i++)
      System.out.println(fact.call(i));//这句不理解,还劳请博友详解
  }
}

见过c的方法递归,这个lamder递归理解不了...
还请各位·不吝赐教,拜托了!

main(void)的主页 main(void) | 初学一级 | 园豆:183
提问于:2020-06-14 15:09
< >
分享
所有回答(2)
0

第一个地方意思是:n是call方法的入参,箭头后面是实现,然后把它赋值给fact变量,这是函数式编程的写法,允许变量直接引用函数。
第二个地方的意思和第一个地方的相关的,就是通过fact变量去调用call方法。

我是满意吖 | 园豆:344 (菜鸟二级) | 2020-06-22 17:35
0

推荐查阅,JAVA 8 lambda 表达式使用

Ankermaker | 园豆:251 (菜鸟二级) | 2020-06-22 19:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册