74
|
polygenelubricants · 技术社区 · 15 年前 |
![]() |
1
28
原因
例如
|
![]() |
2
17
看
另外,因为Java的语法是基于C的,没有人认为迫切需要添加这些操作符。不管怎样,用if语句可能会更好。 |
![]() |
3
12
在Java中是这样的,因为在C中是这样的。 现在的问题是,为什么在C中如此,是因为当&和&成为不同的运算符时(在C从B下降之前的某个时间),运算符的种类被简单地忽略了。
|
![]() |
4
6
很大程度上是因为Java语法基于C(或者至少是C族),而在C中,所有这些赋值运算符都被编译成单个寄存器上的算术或按位汇编指令。赋值运算符版本避免了临时性,并且可能在早期的非优化编译器上生成了更高效的代码。逻辑运算符(在C中称为)的等价形式(
做 有| |=和&=。 编辑:Java和C的术语不同 |
![]() |
5
4
Java的原版之一 aims 是“简单的,面向对象的,熟悉的”。应用于这种情况下,& & =是熟悉的(C,C++有它,熟悉在这方面意味着熟悉的人谁知道这两个)。 &&=不会很熟悉,也不会很简单,因为语言设计者并没有考虑他们可以添加到语言中的每一个操作符,所以额外的操作符越少就越简单。 |
|
6
3
而不是写作
|
![]() |
7
2
我确实同意存在更有意义,但如果不存在也没那么糟糕。我想它不在那里是因为C没有它。 真想不出为什么。 |
![]() |
8
0
如果我猜的话,我会说它不经常使用,所以没有实现。另一种解释可能是解析器只查看= |
![]() |
9
0
我想不出比这更好的理由了,那就是“它看起来非常丑陋!” |
![]() |
10
0
&
&& 如果第一个操作数的计算结果为false,则停止计算,因为结果将为false,这是一个逻辑运算符。它可以应用于布尔函数。 运算符与运算符类似,但可以提高代码的效率。因为由&运算符比较的两个表达式都必须是betrue,才能使整个表达式为betrue,所以如果第一个表达式返回false,则没有理由对第二个表达式求值。运算符始终计算这两个表达式。运算符仅当第一个表达式为真时才计算第二个表达式。 拥有一个&=assignment操作符并不能真正为语言添加新的功能。位运算符的算法更具表现力,可以做整数位运算,其中包括布尔运算。逻辑运算符只能做布尔运算。 |
![]() |
11
0
Brian Goetz(Oracle的Java语言架构师) wrote :
|
![]() |
12
-1
a&b和a&b不是一回事。 a&b是返回布尔值的布尔表达式,a&b是返回int的位表达式(如果a和b是int)。 你认为他们是什么样的人? |