【发布时间】:2010-11-05 14:56:29
【问题描述】:
我知道您可以重载现有的运算符。我想知道是否可以创建一个新的运算符。这是我的场景。
我想要这个:
var x = (y < z) ? y : z;
等价于这个:
var x = y <? z;
换句话说,我想创建自己的<? 运算符。
【问题讨论】:
-
没有语言有这个能力...
-
@JesonPark - 不正确。正如其他人指出的那样,F# 拥有它,C++ has it as well. CoffeeScript 提供了几个新的运算符作为 JavaScript 惯用语的语法糖,而且它是如此可定制,以至于您可以将其描述为允许自定义运算符。最后一个有点棘手,因为从技术上讲,您会扩展语言。
-
@JustinMorgan: CodeProject 文章中提到“C++ 支持运算符重载,但你不能创建自己的运算符” 这是仿真!!
-
即使有可能,我仍然认为这不是一个好主意。它比方法可读性差得多,例如
Min(y, z). -
@userSteve 这已被提议用于 C# 8 - null coalescing assignment