这是我所说的示例:https://developer.apple.com/documentation/foundation/nsmutableorderedset/1410287-insert
插入函数显示为insert(_:at:)
实际使用时,插入函数看起来更像:
namesArray.insert("John", at: 3)
在 "John"
之后没有 :
(虽然我想它可能是 "John":String
-- 就是它在那里的样子for?), 而文档中的函数签名中没有提到实际需要去那里的 ,
。当我实际使用它时,我是否应该知道/假设逗号在那里?所有 Swift 函数都是这种情况吗?
请注意,这不是关于下划线 _
的问题——我理解它为什么在那里以及它的用途。我特别询问在函数签名中包含 :
而不包含 ,
的原因。
最佳答案
在文档中经常看到的约定是一种引用函数的简洁方式,仅使用函数名称和参数标签。
所以考虑这个函数声明:
func insert(_ objects: [Any], at indexes: IndexSet)
这是
- 一个名为
insert
的方法; - 第一个参数名为
objects
,此参数没有参数标签(用_
指定),类型为[Any]
;和 - 第二个参数名称为
indexes
,其参数标签为at
,类型为IndexSet
。
所以你这样调用它:
insert(someObjects, at: someIndex)
当你调用它时,你不关心函数内部使用的参数名称是什么,而只关心参数标签是什么。因此,在文档中引用该方法时的约定是省略参数名称和类型,只使用函数名称和参数标签,但不使用逗号:
insert(_:at:)
请注意,您永远不会在代码中实际使用此语法。这只是一种文档约定,用于将长函数声明提炼成更易于管理和简洁的内容:
有关参数标签和参数名称的更多信息,请参阅 Function Argument Labels and Parameter Names
关于swift - : in Swift function signatures and why is there no comma when it seems there should be one?是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54537403/