我认为为Swift范围添加一些自定义运算符会很有趣(而且可能很有用)。例如,将范围增加一:
postfix func ++ <I : ForwardIndexType where I : Comparable>(inout lhs: Range<I>) -> Range<I> {
lhs.endIndex++
return lhs
}
然而,当我尝试时:
(1...2)++
我得到:
一元运算符"++"不能应用于(Range)类型的操作数
有什么想法吗?还是我应该放弃?
编辑:
我还遇到了通过范围作为参数的问题:
someFunc(range : Range<Int>) {
range++
@hamstergene是对的。你不能++
是一个范围文字,就像不能++
是一个普通的旧Int
一样。
例如,你不能写:
let x = 5++
如果您将范围分配给一个变量,然后调用操作员:,则操作员会工作
var r = 1..<3
r++ // r == 1..<4