【发布时间】:2016-03-03 10:26:14
【问题描述】:
我有返回可选元组的函数
(Range<String.Index>?, Range<String.Index>?).
然后,我需要将此元组添加到我声明为的元组数组中
var arrayOftuples = [(Range<String.Index>, Range<String.Index>)]()
我正在像这样将元组添加到数组中
arrayOftuples += [mytuple]
它让我注意到运算符 += 不能应用于操作数
[(Range<String.Index>, Range<String.Index>)]
和
[(Range<String.Index>?, Range<String.Index>?)]
当我使用可选的数组声明时
var arrayOftuples = [(Range<String.Index>?, Range<String.Index>?)]()
没有更多的抱怨。但是,最后,我需要使用数组中元组中的 startIndex 和 endIndex ,当我尝试像这样获取它时
let myrange = arrayOftuples.first!.0.startIndex..< arrayOftuples.first!.0.endIndex
我抱怨类型的值
Range<String.Index>?
没有成员 startIndex。
据我所知,如果我想从元组中获取 startIndex 和 endIndex,我需要使用不带选项的数组,
var arrayOftuples = [(Range<String.Index>, Range<String.Index>)]()
但是我需要以某种方式从可选元组中仅添加不是(nil,nil)的元组。像这样添加元组时
arrayOftuples += [mytuple!]
它不接受这个。如果我使用这样的条件
if mytuple != (nil, nil)
{
arrayOftuples += [mytuple]
}
它也不起作用。抱怨操作符 != 不能应用。如何解决问题?
【问题讨论】:
标签: arrays swift tuples optional