从打造新闻app学到的(2):定义类中的只读属性

在定义各种接口的过程中,我碰到了这样一个问题:我希望定义一个只读的属性,却找不到合适的前缀(原谅我是Class白痴)。翻了一遍Class的相关文档,找到了个曲线救国的办法:计算属性。
所谓的计算属性,就是自己定义一个属性的名字和get/set方法,外人看不见get/set的实现,只能看作是一个普通属性来使用。而如果只实现了get部分,这个属性对外而言就是只读的了。
我的数据结构大致这样:

class myclass {
    private var data =  ( api : typeX, list:  typeY,  post: typeZ,  channel: typeA) (xxx, list: yyy, post: zzz, .news)
}

我想要把这一组相关数据打包成元组使用,又只想把其中某些暴露出来,并且部分是只读,那么就将其设成private并且在类中实现:

var list : typeY {//只有get,实现只读封装
    get {
        return data.list
    }
}

var ch : typeA {
    get {
        return data.channel
    }
    set (channel) {//这次可读写了
        data.channel = channel
    }
}

现在,外部可以用myclass.list来获取list,或者用myclass.ch来改变channel了