我认为为Swift范围添加一些自定义运算符会很有趣(也可能很有用)。例如,要将范围增加一个:
postfix func ++ <I : ForwardIndexType where I : Comparable>(inout lhs: Range<I>) -> Range<I> {
lhs.endIndex++
return lhs
}
然而,当我尝试:
(1...2)++
我明白了:
一元运算符&#39; ++&#39;不能应用于类型(范围)的操作数
任何想法或我应该放弃?
编辑:
我也遇到了将范围作为参数传递的问题:
someFunc(range : Range<Int>) {
range++
答案 0 :(得分:1)
@hamstergene是对的。您不能++
范围字面值,就像您可以++
常规的Int
一样。
例如,你不能写:
let x = 5++
如果将范围分配给变量然后调用运算符,则运算符可以正常工作:
var r = 1..<3
r++ // r == 1..<4