首页 > 解决方案 > 为什么 Swift 不像 Java 或 C# 那样对属性使用 getter 和 setter?

问题描述

Q1:我有 Java/C# 背景,现在正在学习 Swift。当我编写 java 或 C# 代码时,对于类中的每个属性,我都需要编写 getter 和 setter。但是,我发现我们并没有在 swift 中写这么多的 getter 和 setter。我很好奇为什么会这样。

Q2:我知道有两种属性,存储属性和计算属性。似乎我们只需要为计算属性设置 getter 或 setter。真的吗?

标签: swiftgetter-settercomputed-properties

解决方案


Java 在历史上对直接属性访问和获取值的方法调用(“getter”)有不同的语法。由于您可能有一天想用方法覆盖属性,因此为了保持一致性,在所有情况下都创建一个方法是很常见的。

Swift 通过对直接属性访问和“getter”(计算属性)使用相同的语法来避免这个问题。这意味着您可以稍后改变主意而不会影响调用者,因此没有理由创建“以防万一”的方法。

计算属性在 Swift 中被定义为具有“getter”(一种方法)的属性。get


推荐阅读