实现|| =和&& =运算符:没有匹配运算符声明的运算符实现

安德里·切尔年科(Andrii Chernenko)

我想拥有“ assigning or”和“ assigning and”运算符。根据Swift标准库运算符参考,这些运算符在标准库中定义。

我尝试为这些Bool实现这些运算符

func ||= (inout lhs: Bool, rhs: Bool) {
  lhs = lhs || rhs
}

func &&= (inout lhs: Bool, rhs: Bool) {
  lhs = lhs && rhs
}

但是编译器抱怨: operator implementation without matching operator declaration

这可以通过定义运算符来解决:

infix operator ||= { associativity right precedence 90 }

infix operator &&= { associativity right precedence 90 }

但是我不确定这是正确的做法。为什么标准库中的定义不起作用?另外,我注意到根据操作员参考标准库没有任何类型的这些操作员的实现。这是为什么?这是疏忽还是故意的?

dfrib

有关运算符的文档已过时,该答案的注释已在前面进行了注明我引用用户空速速度:

是的,检查它(编注:指经营者&&=)在早期版本中永远只能定义为运营商非常,实际上从未在任何功能实现的,再后来干脆删除。文件是错误的。

通过Cmd单击Swift您可以轻松查看实际本地定义的运算符

import Swift

在例如操场上。

或者,查看以下源代码中的“标准运算符”部分Policy.swift

在上述两者,这是显而易见的是,既不&&=也不||=是本地定义。


如果您对这些操作符的实现方式感兴趣(早在Swift 1.1中),那么以下文章可能会引起您的兴趣:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

重载<<运算符,实现和分离

来自分类Dev

如何断言运算符<和> =未实现?

来自分类Dev

赋值运算符的下沉参数实现和语言缺陷

来自分类Dev

实现提取和插入运算符C ++

来自分类Dev

HashTable实现获取和设置运算符重载

来自分类Dev

如何断言运算符<和> =未实现?

来自分类Dev

有没有一种方法可以实现和利用“非空合并”运算符?

来自分类Dev

有没有一种方法可以实现和利用“非空合并”运算符?

来自分类Dev

不实现和删除通用运算符有什么区别?

来自分类Dev

C++:调用运算符和调用它的实现有区别吗

来自分类Dev

Python字符串'in'运算符实现算法和时间复杂度

来自分类Dev

如何在Rust中实现惯用运算符重载值和引用?

来自分类Dev

在c ++ 98中实现move构造函数和move赋值运算符,以提高性能

来自分类Dev

Java优化算术和赋值运算符以实现大输入

来自分类Dev

使用移动语义和完美转发来实现“惰性”运算符+

来自分类Dev

Postgres如何实现CUBE,ROLLUP和GROUPING SETS运算符

来自分类Dev

C ++ 20中的运算符==和<=>应该实现为成员还是自由函数?

来自分类Dev

如何实现三元运算符a?b:c,不使用if else和分支

来自分类Dev

Postgres如何实现CUBE,ROLLUP和GROUPING SETS运算符

来自分类Dev

为 S3 类实现提取和分配运算符的最佳方法

来自分类Dev

如何将unique_ptr的移动构造函数和运算符实现为类的私有成员

来自分类Dev

在具有智能指针的类上正确实现Copy构造函数和Equals运算符

来自分类Dev

模板类实现比较运算符

来自分类Dev

在Ruby中实现运算符重载(+ =)

来自分类Dev

PostgreSQL实现集合运算符

来自分类Dev

C ++ ==运算符重载(实现)

来自分类Dev

浮点运算符正确舍入的实现

来自分类Dev

在Python中实现梯度运算符

来自分类Dev

C中sizeof运算符的实现

Related 相关文章

  1. 1

    重载<<运算符,实现和分离

  2. 2

    如何断言运算符<和> =未实现?

  3. 3

    赋值运算符的下沉参数实现和语言缺陷

  4. 4

    实现提取和插入运算符C ++

  5. 5

    HashTable实现获取和设置运算符重载

  6. 6

    如何断言运算符<和> =未实现?

  7. 7

    有没有一种方法可以实现和利用“非空合并”运算符?

  8. 8

    有没有一种方法可以实现和利用“非空合并”运算符?

  9. 9

    不实现和删除通用运算符有什么区别?

  10. 10

    C++:调用运算符和调用它的实现有区别吗

  11. 11

    Python字符串'in'运算符实现算法和时间复杂度

  12. 12

    如何在Rust中实现惯用运算符重载值和引用?

  13. 13

    在c ++ 98中实现move构造函数和move赋值运算符,以提高性能

  14. 14

    Java优化算术和赋值运算符以实现大输入

  15. 15

    使用移动语义和完美转发来实现“惰性”运算符+

  16. 16

    Postgres如何实现CUBE,ROLLUP和GROUPING SETS运算符

  17. 17

    C ++ 20中的运算符==和<=>应该实现为成员还是自由函数?

  18. 18

    如何实现三元运算符a?b:c,不使用if else和分支

  19. 19

    Postgres如何实现CUBE,ROLLUP和GROUPING SETS运算符

  20. 20

    为 S3 类实现提取和分配运算符的最佳方法

  21. 21

    如何将unique_ptr的移动构造函数和运算符实现为类的私有成员

  22. 22

    在具有智能指针的类上正确实现Copy构造函数和Equals运算符

  23. 23

    模板类实现比较运算符

  24. 24

    在Ruby中实现运算符重载(+ =)

  25. 25

    PostgreSQL实现集合运算符

  26. 26

    C ++ ==运算符重载(实现)

  27. 27

    浮点运算符正确舍入的实现

  28. 28

    在Python中实现梯度运算符

  29. 29

    C中sizeof运算符的实现

热门标签

归档