swift函数中参数名称的间距
Posted
技术标签:
【中文标题】swift函数中参数名称的间距【英文标题】:Spacing in parameter name on swift functions 【发布时间】:2017-06-11 19:18:11 【问题描述】:我想在 swift 函数的参数名称之间添加一个空格。我想在swift提供的准备segue功能中实现类似的东西
func prepare(for segue: UIStoryboardSegue, sender: Any?)
实现时在函数调用中使用的“for segue”参数名称。
例如。我想创建一个函数func saveReceipt(for customer:....)
然后我想调用函数saveReceipt(for customer:....)
【问题讨论】:
"实现它时在函数调用中使用的“for segue”参数名称" – 不,它被称为prepare(for: ...)
。 for
是参数标签,在调用处使用,segue
是参数名,在方法内部使用。
【参考方案1】:
可悲的是,这不是参数的工作方式。
以prepareForSegue
函数为例。它看起来像一个函数:
override prepare(for segue: ...)
但是,如果你要调用它,它看起来像这样:
prepare(for: UIStoryboardSegue, ...)
当你调用一个函数时,你只能有一个参数名。
编辑
看看你的例子,你可以有一个这样的函数:
func saveReceipt(for customer: ...)
然后这样称呼它:
saveReceipt(for: MyCustomerClass, ...)
【讨论】:
哦,好吧,我明白了,一直以为“for segue”是调用时使用的参数名 @VicentiuPetreaca 是的,不,“segue”标签是严格内部的。 :)【参考方案2】:在您的示例中,for
是参数标签,而 segue
是参数名称。
这“可以允许以富有表现力的、类似句子的方式调用函数,同时仍提供可读且意图清晰的函数体。”
(见https://docs.swift.org/swift-book/LanguageGuide/Functions.html)
也就是说,您使用调用者的参数标签和函数体内的参数名称。
在您的第二个示例中,您使用saveReceipt(for: myCustomer)
调用saveReceipt
(myCustomer
是保存您的客户的变量)并使用customer
作为正文中的参数名称。
【讨论】:
以上是关于swift函数中参数名称的间距的主要内容,如果未能解决你的问题,请参考以下文章
如何从具有隐藏变量名称(参数前的_)或内部+外部(例如 foo(with bar:))的 Objective-C 调用 Swift 函数