加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

为什么 – 在Java 1.8中 – 使用了函数而不是函数?

发布时间:2020-12-15 02:57:50 所属栏目:Java 来源:网络整理
导读:顺序似乎很奇怪,因为在常规 Java中,始终首先指定返回类型.如: public static double sum(IterableNumber nums) { ... } 那么为什么在Function和BiFunction类中可以选择以相反的方式指定它们呢?如: interface FunctionT,Rinterface BiFunctionT,U,R 我不是
顺序似乎很奇怪,因为在常规 Java中,始终首先指定返回类型.如:
public static double sum(Iterable<Number> nums) { ... }

那么为什么在Function和BiFunction类中可以选择以相反的方式指定它们呢?如:

interface Function<T,R>
interface BiFunction<T,U,R>

我不是在这里询问关于哪个更好的意见,但具体来说:

a)优先考虑一个订单而不是另一个订单是否有任何技术或其他(非风格)好处?或者它是一个随意的选择?

b)是否有人知道任何文件说明或权威来源的任何陈述的理由,为什么选择了另一个?

旁白:如果延伸到更高的城市,这个命令似乎更奇怪.例如,一个假设的QuadFunction:

interface QuadFunction<A,B,C,D,R> { ... }

(在撰写本文时,图书馆中的最高权力是2 – 即BiFunction.)

见:http://download.java.net/jdk8/docs/api/java/util/function/package-summary.html

解决方法

它与先前存在的符号一致.

数学整数除法函数扩展为有理数:

(): I x I -> Q

上面的函数式编程版本(如Haskell,Ocaml)

division :: Integer -> (Integer -> Rational)

or

division :: Integer -> Integer -> Rational

这三个人都说“分割函数需要两个整数并返回一个有理数”.在功能范例中,它首先要说明你的回报. C告诉我们“我们在除法函数中返回一个有理数,它取两个整数”(ex float division(int a,int b){}).

在Java中,返回类型位于方法的左侧,因为Java想要看起来像C. C的设计者认为“int main(int argv,char * argv [])”看起来比“main(int argv,char *)好” argv [])int“.在编写代码时,至少对我而言,在知道它需要什么之前,我经常会知道什么方法会返回. (编辑1:我们写了像String s = removeSpaces(textLine)这样的行,所以左边的返回符合左边的变量)

在C#中,func看起来与Java 8 Function相同.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读