gpt4 book ai didi

非原始数简单算术的 Java 注解

转载 作者:太空宇宙 更新时间:2023-11-04 07:06:19 27 4
gpt4 key购买 nike

每个人都知道 Java 中的简单算术如何用于基元:

int one = 1,two = 2,three = one + two;
double four = (one + two) / three;
if(four % 1 == 0){
System.out.println("Yay for simple maths!");
} else{
throw new RealityError("http://www.youtube.com/watch?v=H91rPIq2mN4");
}

但是当你离开原始类型的那一刻,事情就变得很快复杂了!尝试重复之前的简单算术是一个很大的挑战!

BigInteger bigOne = BigInteger.ONE, bigTwo = BigInteger.valueOf(2),
bigThree = bigOne.add(bigTwo);
BigDecimal bigFour = new BigDecimal(bigThree.divide(bigOne.add(bigTwo)));
if (BigInteger.valueOf(bigFour.longValueExact()).mod(BigInteger.ONE).equals(BigInteger.ZERO)) {
System.out.println("Yay for simple maths?!?!");
} else {
throw new RealityError("http://www.youtube.com/watch?v=H91rPIq2mN4");
}

为什么像 +, -, *, or / 这样的运算符不使用注释?如@DefaultAddOperator对于扩展 Number 的类。或者,在 BigInteger 类中,为什么它不能实现一个接口(interface)来简单地说明在类上调用运算符时要执行的操作。这个概念并不太牵强,我的意思是它与 "Hello World!".toString() 一起使用。和重载运算符 + ,并且会大大简化上述基于类的算术。

最佳答案

这是因为java不支持运算符重载,如 。看看语言,他们确实如此。此外,groovy 使用 BigDecimal 作为非整数运算的主要类型。它支持所有这些基本操作。

关于非原始数简单算术的 Java 注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21325143/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com