Swift类中如何创建一个对外只读对内可读写的属性

Swift类中如何创建一个对外只读对内可读写的属性,第1张

概述很简单用private修饰符,后面跟限制关键字set: class Day{ private(set) var rawValue:Int = 0 func showRawValue(){ print("raw is \(rawValue)") } func forwardRawValue(){ rawValue += 1

很简单用private修饰符,后面跟限制关键字set:

class Day{    private(set) var rawValue:Int = 0    func showRawValue(){        print("raw is \(rawValue)")    }    func forwardRawValue(){        rawValue += 1    }}

不过如上上述类定义在playground中的话,实际你会发现如果去掉后面的(set)照样可以在外部访问:

let day = Day()day.rawValue+=1 //that's OK!day.forwardRawValue()day.showRawValue()

这是因为Swift中private修饰符的含义和传统面向对象中的不太一样,在Swift中private只是限制在同一个文件中的可见性.所以要想它真正发挥作用,你必须在外部文件中才能体会到:

class VIEwController: UIVIEwController { func test(){ let day = Day() //day.rawValue = 99 Error!!! day.showRawValue() day.forwardRawValue() day.showRawValue() } }

That’s OK! ;]

总结

以上是内存溢出为你收集整理的Swift类中如何创建一个对外只读对内可读写属性全部内容,希望文章能够帮你解决Swift类中如何创建一个对外只读对内可读写的属性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1074328.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存