例如,在 Java 版本 9 中,有人想添加对 ≤ 和 ≥ 字符作为操作数的支持,它们分别与 <= 和 >= 操作数完全一样。这可能吗,因为 ≤ 和 ≥ 是非 ASCII 字符/不是标准字符集的一部分,而不破坏可移植性?可行吗?有没有任何主要的编程语言支持这样的东西?
最佳答案
Java 不允许运算符重载,因为这是该语言的一个非常基本的原则,我认为您永远无法将 ≤ 或 ≥ 用于 <= 或 >=。
但是,Scala(另一种 JVM 语言)支持使用 Unicode 字符作为标识符的运算符重载和。这是一个示例 REPL session ,我在其中为数字类型定义了 ≤
和 ≥
运算符:
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
关于java - 假设 - 支持非字符串文本中的非 ASCII 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15675000/