标题有点含糊不清,但我通过下面的例子展示了我的问题。假设我想定义一个变量来显示某个数组索引中的值。我想在二传手中意识到这一点。怎么做?我尝试了下面的代码,但它是错误的,无法编译。很明显,索引不能在setter中定义,但在setter中是否还有其他方法可以实现?
var myArray = ["a", "b", "c"]
var myValue: String?{
get{}
set(var index: Int){self.myValue = myArray.objectAtIndex(index)}
}
var test: String? = myValue(1)
答案 0 :(得分:1)
我可能会误解你在这里尝试做什么,但我认为你是以错误的方式解决这个问题。如果您希望变量只返回数组中某个索引处的对象,那么您可以从getter中执行此操作。另外,因为看起来你想传递一个值来确定输出是什么,所以你应该只使用一个函数。例如:
var myArray = ["a", "b", "c"]
func myValue(index: Int) -> String? {
if index < myArray.count {
return myArray[index]
}
return nil
}
var test = myValue(1)