swift中的运算符或方法,用作python的海象运算符

Posted

技术标签:

【中文标题】swift中的运算符或方法,用作python的海象运算符【英文标题】:operator or method in swift which work as walrus operator of python 【发布时间】:2020-02-19 09:28:45 【问题描述】:

walrus operatorpython language ( := ) 工作:-assign 的值和return 的值。

像 swift 这样的语言在赋值时什么也不返回。 如何在swift language 中实现walrus operator 之类的东西?

我认为它是通过 make 函数完成的,传递变量和值的地址。 在该地址中赋值并返回值。 这是工作还是任何其他方式?

【问题讨论】:

你的意思是+=-=var x = 2; x += 2; //x is now 4。如果不是,也许您可​​以为您的问题提供更清晰的示例 我提到海象算子,作为... b = 10;而 b > 0 print(b := b-1) 这将打印 9,8....0 不,我认为您需要将print(b := b-1) 拆分为b -= 1; print(b) python 也通过拆分来做同样的事情,但他们仍然将其用于最佳用途。我希望通过自定义运算符来实现。 您是否尝试过创建自定义运算符? 【参考方案1】:

Joakim 是正确的。

Swift 没有像 C 那样的一元运算符。

在 C 中,你可以这样做:

b = 10;
while (b>0) 
   print(b--);

在 Swift 中,没有一元 ++ 或 -- 运算符,所以你可以这样做:

var b = 10
while (b > 0) 
   print b
   b -= 1

但是,实际上,在 Swift 中,你会这样做

for b in (0...10).reversed()  
   print b

见Reverse Range in Swift

【讨论】:

b go 9 to 0 只是示例,我需要在需要时使用该功能。

以上是关于swift中的运算符或方法,用作python的海象运算符的主要内容,如果未能解决你的问题,请参考以下文章

Python 海象运算符 (:=) 的三种用法

带有三元运算符的海象运算符的正确语法是啥?

dict理解中的海象运算符

很多人不知道的Python 炫技操作:海象运算符的三种用法

局部变量上的MySQL海象运算符?

❤️思维导图整理大厂面试高频数组15: 介绍Entry类和海象运算符, 哈希表解决最短连续子数组, 力扣697❤️