您现在的位置是:首页 > 文章详情

《Swift 权威指南》——第6章,第6.3节扩展参数

日期:2017-05-01点击:458

本节书摘来自异步社区《Swift 权威指南》一书中的第6章,第6.3节扩展参数,作者 李宁,更多章节内容可以访问云栖社区“异步社区”公众号查看

6.3 扩展参数

我们发现,Swift语言中的很多函数/方法在调用时不只是传入一个参数值,在前面还要跟一个有意义的英文名,该英文名和参数值之间用冒号(:)分隔。例如,Dictionary有一个updateValue方法,该方法的第二个参数需要给一个forKey,然后才能传入参数值,调用形式如下。

dict.updateValue("飞机", forKey:21)

实际上,这个forKey就是扩展参数名,该参数也可以成为命名参数。也就是说,在定义函数时指定的参数名是函数内部使用的,可以成为函数的内部参数名。而为了让代码更容易理解,在定义函数时还为其指定了一个参数名,该参数名就是扩展参数名。只在调用函数时指定。定义扩展参数名也很简单,只需要在内部参数名之前指定扩展参数名即可,两侧参数之间用空格分隔。

例如,下面两个函数,前者(process)是没有扩展参数名的函数,后者(process1)是有扩展参数名的函数。我们可以观察它们在调用时的差别。

// 没有扩展参数名的函数 func process(p1: String, p2:Int) -> String { return "name:" + p1 + " age:" + String(p2) } process("bill", 20) // 有扩展参数名的函数,其中name和age是扩展参数名,需要在调用时指定 func process1(name p1: String, age p2:Int) -> String { return "name:" + p1 + " age:" + String(p2) } // 调用process1函数,在调用时必须指定扩展参数名 println(process1(name: "Mike", age:17)) 执行这段代码后,会输出如下的内容。 name:Mike age:17

注意:在使用扩展参数名调用函数时,不能将参数顺序写错了,否则无法成功编译1

原文链接:https://yq.aliyun.com/articles/96171
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章