gpt4 book ai didi

swift - 是否可以重载 "?"运算符?

转载 作者:行者123 更新时间:2023-11-30 10:20:09 25 4
gpt4 key购买 nike

我能够轻松重载 ?? 运算符。然而, ? 运算符一直在抵制。我想将其重载为二进制中缀运算符。

这是我对 ?? 所做的事情:

infix operator ?? {associativity right precedence 110}
public func ?? (condition: Bool, asignment: @autoclosure () -> ()) {
... //some execution
}

同样不适用于 - 如果我跳过中缀运算符? ... 我收到编译错误,此类运算符不存在。如果我包含它,我会在该行收到编译错误。

有人能够重载吗?或者有权威人士(来自 Swift 团队?)确认它不会被重载?若有,原因为何?

最佳答案

不,您不能覆盖? ——这三个位置都是保留运算符(operator)。来自 Swift language docs :

The tokens =, ->, //, /*, */, ., the prefix operators <, &, and ?, the infix operator ?, and the postfix operators >, !, and ? are reserved. These tokens can’t be overloaded, nor can they be used as custom operators.

关于swift - 是否可以重载 "?"运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27234759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com