ma1*_*w28 6 documentation class instance notation swift
为了记录 Ruby,我会写,例如,Time::now或Time#day. 我如何记录 Swift?
也就是说,在记录 Swift 时,类型及其 1) 类型属性或方法或 2) 实例属性或方法的表示法是什么?
例如,在 Ruby 文档中,符号::(两个冒号)表示类属性或方法,符号#(数字符号、哈希、井号或井号)表示实例属性或方法。因此,Time::now表示now是 的类属性或方法Time,Time#day表示day是 的实例属性或方法Time。
Swift 文档有这样的符号语法吗?
我知道 Swift 文档的函数表示法——例如,Swiftappend(_ newElement: Element)方法Array被记录为——append(_:)因为我在 Apple 的文档中看到了很多这种表示法的例子。但是,我如何Array#append(_:)为 Swift编写代码?
不幸的是,Swift 没有官方或广泛接受的符号来区分类型属性/方法和具有类型名称前缀形式的实例属性/方法。
(所以,普通的 Swift 程序员(甚至专家)无法理解你在问什么。)
类型名称前缀形式实际上在Swift 书中使用过,但并不常见。
据我检查:
在某些部分,类型属性以类似 的形式引用UInt32.max,但正如您所见,这只是使用与 Swift 表达式一样有效的实际符号。
在其他一些部分,类型方法被称为类似 的形式LevelTracker.unlock(_:),但这也是 Swift 中的有效表达式,我不确定 Apple 是否使用它作为类型方法的文档符号。我无法在 Swift 书中快速找到示例,但初始化器通常以类似的形式引用String.init(data:encoding:),这也是 Swift 中的有效表达式。
对于其他情况,实例方法或属性被称为instanceVar.methodName(_:)或instanceVar.propertyName,当然instanceVar出现在附近的代码片段中并且不是类型名称,这实际上不是您正在寻找的。
正如您所知,在 Apple 的官方参考资料中,方法或属性均以Instance method、Type method、Instance Property或Type Property标题显示。或者以class/static var/let, class/static func,var/let或 为前缀func。
我找不到一个非常简短的调查示例,但有些文章(包括 Apple 的)可能也以表单(或实例属性)的形式引用实例方法TypeName.methodName(_:)。似乎 Swift 社区认为区分类型成员和实例成员并不重要。
我不能花太多时间,但似乎很明显
Swift 没有官方或广泛接受的符号来区分类型属性/方法和具有类型名称前缀形式的实例属性/方法。
也许你需要写一些类似实例方法的 Array.append(_:)东西来表示Array#append(_:)。
(需要注意的是,Array.append(_:)也是 Swift 中的有效表达式。)
| 归档时间: |
|
| 查看次数: |
505 次 |
| 最近记录: |