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) 调用saveReceiptmyCustomer 是保存您的客户的变量)并使用customer 作为正文中的参数名称。

【讨论】:

以上是关于swift函数中参数名称的间距的主要内容,如果未能解决你的问题,请参考以下文章

为啥函数调用需要 Swift 中的参数名称?

swift中具有多个参数的函数

Swift6-函数

如何从具有隐藏变量名称(参数前的_)或内部+外部(例如 foo(with bar:))的 Objective-C 调用 Swift 函数

如何在结构中省略参数名称

Swift初见Swift函数