swift - 为什么 Swift 不像 Java 或 C# 那样对属性使用 getter 和 setter?
问题描述
Q1:我有 Java/C# 背景,现在正在学习 Swift。当我编写 java 或 C# 代码时,对于类中的每个属性,我都需要编写 getter 和 setter。但是,我发现我们并没有在 swift 中写这么多的 getter 和 setter。我很好奇为什么会这样。
Q2:我知道有两种属性,存储属性和计算属性。似乎我们只需要为计算属性设置 getter 或 setter。真的吗?
解决方案
Java 在历史上对直接属性访问和获取值的方法调用(“getter”)有不同的语法。由于您可能有一天想用方法覆盖属性,因此为了保持一致性,在所有情况下都创建一个方法是很常见的。
Swift 通过对直接属性访问和“getter”(计算属性)使用相同的语法来避免这个问题。这意味着您可以稍后改变主意而不会影响调用者,因此没有理由创建“以防万一”的方法。
计算属性在 Swift 中被定义为具有“getter”(一种方法)的属性。get
推荐阅读
- c++ - 此代码不断输出分段错误,我不知道为什么。有什么建议么?
- scala - 如何优雅地结合两个 Either 的结果
- javascript - AJAX POST 不发送所有数据
- express - 在静态文件中将 content-type 设置为 XHTML
- python - 用 tweepy 回复推文
- python - 在 Python 中安装 setuptools 时没有名为“pkg_resources”的模块
- python - 用于非规范键盘输入处理的 Python 模块
- bash - 将文件名中的子字符串附加到 CSV 的每一行
- javascript - Eslint:禁用除 1 条规则之外的所有规则?
- json - 为什么 jq 1.6 不接受这个“if A then B end”语句?