在类内部具有 get 和 set 访问权限但在类外部只能在 Swift 中访问的类变量? [复制]

Posted

技术标签:

【中文标题】在类内部具有 get 和 set 访问权限但在类外部只能在 Swift 中访问的类变量? [复制]【英文标题】:Class Variable that have get and set access inside class but outside class only get access in Swift? [duplicate] 【发布时间】:2021-07-30 17:22:19 【问题描述】:

例如:- 在 Player Class 中,Score 应该在 Class 内部具有 get 和 set 访问权限,但 class 外部 score 应该是只读属性。

Class Player
   var score : Int  //get and set
   init(score : Int) 
       self.score = score
   
   func printScore()
      print(score)
   
   func updateScore(by value: Int)
       self.score += value
   

let player1 = Player(score : 30)
print(player1.score) //=> should be allowed
player.score = 100  //=> should not be allowed

【问题讨论】:

将其设为私有重命名例如private var _score?并使用另一个仅用于外部使用的 get:var score return _score (这里,get 是隐含的) 【参考方案1】:

这由private(set) 访问控制处理:

private(set) var score : Int

有关这些访问控制的完整详细信息,请参阅 The Swift Programming Language 中的 Getters and Setters。

【讨论】:

以上是关于在类内部具有 get 和 set 访问权限但在类外部只能在 Swift 中访问的类变量? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在类外声明后访问变量的范围

Java内部类

7 类-友元函数

PHP类中的__set()和__get()方法用在啥地方?可以用例子说明一下么...

在类外调用的私有函数成员

c++