是否可以创建计算数组属性,还是需要创建重载函数来实现此目的?
即。可以将其重写为属性
class myclass (
private var myInternalArray[pvtstrct]()
init(){
<loop building myInternalArray.insert(struct, at Index) .....>
}
func lfof(index: Int, value: String) {
myInternalArray(index) = PrivateCoversionFromString(value)
}
func lfof(index: Int) -> String {
return PrivateConversionToString(myInternalArray(index))
}
答案 0 :(得分:2)
您正在寻找的功能似乎位于subscripts上官方Swift参考的部分。
你的第一个功能是一个设定器,第二个功能是一个吸气剂。您可以使用subscript
来减少尴尬:
class MyClass {
private var _privateArray: [SomeType]
subscript(index: Int) -> String {
get {
return toString(_privateArray[index])
}
set(newValue) {
_privateArray[index] = fromString(newValue)
}
}
func fromString(value: String) -> SomeType {
// The code that turns a string into SomeType
}
func toString(value: SomeType) -> String {
// The code that turns SomeType into a string
}
}