Swift 访问控制何时使用 Class 图的前置符号
Swift Access Control When to Use Which Preceding Symbols For a Class Diagram
我之前在Java中学习过class图;但是,我也想在与 Swift 一起工作时正确使用它们。我不是在寻找任何自动生成的东西,因为我想擅长绘制它们并快速阅读它们。
无论如何我很有信心 Java 我们使用前面的符号来表示变量可见性。 (Picture example)
+ Public
- Private
# Protected
~ Package
* Random
但是当谈到 Swift 时,当我在 public [=30= 中有一个隐式内部变量时,我有点困惑在哪里可以找到使用哪个符号的适当共识] 像这样。
public class MapTracker {
var locationManager = CLLocationManager()
}
用于访问控制的 Swift 4.2 Documentation 让我认为这与 Package
或 Protected
密切相关。
有什么想法吗?
如您所见,Java 与 Swift 确实不同。 :)
Swift 具有以下访问修饰符,从最容易访问到最少:
open
public
internal
fileprivate
private
他们的行为与 Java 同行(如果有的话)完全不同。所以我的建议是不要试图在 Java 中找到它们的等价物。忘掉你所知道的关于 Java 的一切,试着想出 Swift 特有的符号。例如,我想出了:
++ open
+ public
~ internal
-~ fileprivate
- private
您还可以争辩说区分 fileprivate
和 private
不是很有用,因为在 class 图中,您看不到哪个 class属于哪些文件。您可以对它们都使用 -
。
我发现这个 project 可以生成您的 swift 代码的 class 图。从它的外观来看,它似乎没有生成任何指示访问修饰符的东西。
我之前在Java中学习过class图;但是,我也想在与 Swift 一起工作时正确使用它们。我不是在寻找任何自动生成的东西,因为我想擅长绘制它们并快速阅读它们。
无论如何我很有信心 Java 我们使用前面的符号来表示变量可见性。 (Picture example)
+ Public
- Private
# Protected
~ Package
* Random
但是当谈到 Swift 时,当我在 public [=30= 中有一个隐式内部变量时,我有点困惑在哪里可以找到使用哪个符号的适当共识] 像这样。
public class MapTracker {
var locationManager = CLLocationManager()
}
用于访问控制的 Swift 4.2 Documentation 让我认为这与 Package
或 Protected
密切相关。
有什么想法吗?
如您所见,Java 与 Swift 确实不同。 :)
Swift 具有以下访问修饰符,从最容易访问到最少:
open
public
internal
fileprivate
private
他们的行为与 Java 同行(如果有的话)完全不同。所以我的建议是不要试图在 Java 中找到它们的等价物。忘掉你所知道的关于 Java 的一切,试着想出 Swift 特有的符号。例如,我想出了:
++ open
+ public
~ internal
-~ fileprivate
- private
您还可以争辩说区分 fileprivate
和 private
不是很有用,因为在 class 图中,您看不到哪个 class属于哪些文件。您可以对它们都使用 -
。
我发现这个 project 可以生成您的 swift 代码的 class 图。从它的外观来看,它似乎没有生成任何指示访问修饰符的东西。