Swift 3,自定义“=”等于运算符? (不平等,“==”)

时间:2016-11-02 19:20:35

标签: swift operators swift3

我有一个班级

var blah:Thing
blah.name = "text"
像这样

var blah:Thing
var x:Thing

blah = "text"   // Swift knows I mean blah.name = "text"
blah = x        // Swift knows I mean blah becomes x as normal

它发生在我身上,如果我可以“覆盖等号”,当右边的项目是一个字符串时会很棒。

然后你可以

public subscript

我错过了一些明显的东西吗?怎么办?

请注意,您当然可以使用,接管下标操作 <a> 太棒了。你能接管“=”等号吗?

1 个答案:

答案 0 :(得分:4)

You can't override the = operator in Swift:

  

注意

     

令牌=->///**/.,前缀运算符<&?   中缀运算符?,后缀运算符>!?是保留的。   这些令牌不能超载,也不能用作自定义   运算符。

它可以在C ++中完成,主要是由于需要手动内存管理。感谢ARC,这在Swift中是不必要的,它只会为你的代码添加不必要的烟雾和镜像,带来各种令人困惑的隐含行为。