答案 0 :(得分:2)
Java不允许运算符重载,因为这是该语言的一个非常基本的原则,我认为你不能使用≤或≥对于< =或> =。
但是,Scala(另一种JVM语言)支持使用Unicode字符作为标识符的运算符重载和。这是一个示例REPL会话,我为数字类型定义≤
和≥
运算符:
scala> implicit class ExtendedNumeric[T](n: T)(implicit numeric: Numeric[T]) {
| import numeric._
| def `≥`(other: T) = n >= other
| def `≤`(other: T) = n <= other
| }
defined class ExtendedNumeric
scala> 1 ≤ 2
res0: Boolean = true
scala> 5 ≤ -5
res1: Boolean = false
scala> 8.0 ≥ 0.0001
res2: Boolean = true
答案 1 :(得分:1)
Java已经支持非ascii字符。例如,以下程序编译得很好:
public class Test {
public static final float π = 3.1415927f;
public static void main(String[] args) {
System.out.println(π);
}
}
(当然,您需要使用包含π的源文件字符编码)
但是,由于≤和≥可能不会在标识符中使用,因此将它们作为运算符引入不会破坏向后兼容性。
许多语言都支持定义您自己的运算符。毕竟,区分运算符和函数调用的唯一因素是中缀表示法,即运算符名称出现在其操作数之间而不是之前。有关此类语言的(不完整)列表,请参阅operator overloading上的维基百科文章。