scala – 这是设计中java lambda的限制
发布时间:2020-12-16 19:10:20 所属栏目:安全 来源:网络整理
导读:我想定义一个简单的lambda,加起来三个整数: (int a,int b,int c)-a+b+c 对于这个简单的情况,我有两个选择: 定义功能界面.单个抽象方法应该是int add(int a,int c),方法名称和varable名称无关紧要. 使用方法参考.我必须定义一个类/方法或使用具有签名int ad
我想定义一个简单的lambda,加起来三个整数:
(int a,int b,int c)->a+b+c 对于这个简单的情况,我有两个选择: >定义功能界面.单个抽象方法应该是int add(int a,int c),方法名称和varable名称无关紧要. 在这两种情况下,对于非常简单的lambda,我必须回到OOP世界(接口,类等) 但是在scala中,定义一个函数非常简单: 解决方法
在Java中,必须将每个lambda表达式定位到特定的功能接口类型.这是设计的,在实践中它意味着功能不是语言的一等公民.
所以,是的,你必须回到OOP世界. 但是,您可以使用函数内置类型以其currified形式定义函数: Function<Integer,Function<Integer,Integer>>> add = a -> b -> c -> a + b + c; 用法: int result = add.apply(1).apply(2).apply(3); // 6 虽然我怀疑这根本不可读…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |