swift类可以使用计算属性数组

时间:2016-04-12 15:08:50

标签: swift

是否可以创建计算数组属性,还是需要创建重载函数来实现此目的?

即。可以将其重写为属性

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))
}

1 个答案:

答案 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
    }
}

这段代码改编自The Swift Programming Language (Swift 2.2)