swift中的运算符或方法,用作python的海象运算符
Posted
技术标签:
【中文标题】swift中的运算符或方法,用作python的海象运算符【英文标题】:operator or method in swift which work as walrus operator of python 【发布时间】:2020-02-19 09:28:45 【问题描述】:walrus operator
的 python 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的海象运算符的主要内容,如果未能解决你的问题,请参考以下文章