我正在尝试Swift新运算符~=
,但遇到了一个奇怪的错误。
var filteredNumbers1 = [20,30,50,15].filter({15...30 ~= $0})
按预期工作。
var filteredNumbers2 = [20,30,50,15].filter({$0 ~= 15...30})
引发错误
二元运算符'〜='不能应用于' int'类型的操作数和'范围< Int>'
我想知道15...30 ~= $0
和$0 ~= 15...30
之间有什么区别?
答案 0 :(得分:4)
~=
被定义为期望左侧的模式和右侧的值。声明是:
public func ~=<I : ForwardIndexType where I : Comparable>(pattern: Range<I>, value: I) -> Bool
如果您愿意,可以添加自己的左侧支持值和右侧范围的版本:
func ~=<I : ForwardIndexType where I : Comparable>(value: I, pattern: Range<I>) -> Bool {
return pattern ~= value
}