【问题标题】:Can we create custom Rust operators?我们可以创建自定义 Rust 运算符吗?
【发布时间】:2023-03-23 01:29:01
【问题描述】:

我知道我们可以实现覆盖标准算术运算符的特征。我们还可以创建自己的特征来重载自定义运算符吗?我开始真正享受 Haskell 定义运算符的系统。

【问题讨论】:

    标签: rust operator-overloading


    【解决方案1】:

    不,根据the manual,唯一可以重载的运算符是:

    • ! — 按位或逻辑补码
    • != — 非质量比较
    • % — 算术余数
    • %= — 算术余数和赋值
    • & — 按位与
    • &= — 按位与和赋值
    • * — 算术乘法
    • *= — 算术乘法和赋值
    • + — 算术加法
    • += — 算术加法和赋值
    • - — 算术否定
    • - — 算术减法
    • -= — 算术减法和赋值
    • / — 算术除法
    • /= — 算术除法和赋值
    • << — 左移
    • <<= — 左移和赋值
    • < — 小于比较
    • <= — 小于或等于比较
    • == — 平等比较
    • > — 大于比较
    • >= — 大于或等于比较
    • >> — 右移
    • >>= — 右移和赋值
    • ^ — 按位异或
    • ^= — 按位异或和赋值
    • | — 按位或
    • |= — 按位或和赋值

    【讨论】:

    • 您知道是否有计划添加此功能?或者,计划永远不添加此功能?谢谢
    • 我会假设(我有一个模糊的回忆)Graydon(Rust 的 BFDL)不喜欢它,并且宁愿将它排除在语言之外。但是通过粗略的搜索,我找不到任何关于此声明的参考资料。
    猜你喜欢
    • 1970-01-01
    • 2014-08-21
    • 2013-01-26
    • 2011-12-21
    • 2023-01-15
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    相关资源
    最近更新 更多