加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift中忽略参数的用例是什么?

发布时间:2020-12-14 04:51:33 所属栏目:百科 来源:网络整理
导读:在 Swift中,您可以编写以下内容: func foo(_:Int) - { return 1 } 下划线是一个被忽略的参数.我只是因为文档而知道这一点,但是不能想到为什么你甚至会这样做的任何用例.我错过了什么吗? 解决方法 在以下情况下忽略参数(或元组的成员,它们非常接近同一个东
在 Swift中,您可以编写以下内容:

func foo(_:Int) -> { return 1 }

下划线是一个被忽略的参数.我只是因为文档而知道这一点,但是不能想到为什么你甚至会这样做的任何用例.我错过了什么吗?

解决方法

在以下情况下忽略参数(或元组的成员,它们非常接近同一个东西)是有意义的:

>您正在覆盖超类函数或实现协议定义的函数,但您对该函数的实现不需要其中一个参数.例如,如果挂钩应用程序启动但不需要在该方法中引用共享UIApplication实例:

override func application(_: UIApplication!,didFinishLaunchingWithOptions _: NSDictionary!) -> Bool { /* ... */ }

>您提供了一个闭包(在ObjC中也称为块)作为某个API的参数,但您对该API的使用并不关心闭包的其中一个参数.例如,如果您要对照片库提交更改并希望谨慎使用,则可以忽略完成处理程序中的成功和错误参数:

PHPhotoLibrary.sharedPhotoLibrary().performChanges({
    // change requests
},completionHandler: { _,_ in
    NSLog("Changes complete. Did they succeed? Who knows!")
})

>您正在调用一个提供多个返回值的函数/方法,但不关心其中一个.例如,假设一个假设的NSColor方法将组件作为元组返回,您可以忽略alpha:

let (r,g,b,_) = color.getComponents()

这背后的原因是它使您的代码更具可读性.如果你声明一个你最终没有使用的参数(或元组成员)的本地名称,那么阅读你的代码的人(很可能只是几个月后你自己的版本)可能会看到这个名字和奇迹它在函数体中的使用位置和方式.如果您事先声明忽略该参数(或元组成员),则表明在该范围内无需担心它. (理论上,这也可以为编译器提供优化提示,这可能会使您的代码运行得更快.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读