注意:我在这里只谈论Swift 2。
我已经看到了两种方法命名约定:
func animateWithDuration(duration: NSTimeInterval, animation: () -> Void)
和
func animate(withDuration duration: NSTimeInterval, animation: () -> Void)
我听说其中之一更加“敏捷”。但是我不记得是哪个。但是为什么人们甚至会在意呢?调用时,这两个约定看起来几乎相同:
animateWithDuration(10) { ... }
经文
animate(withDuration: 10) { ... }
当您尝试大声朗读该方法时,它们的含义完全相同:
为时长10设置动画
那么哪个更快捷,为什么呢?
前一种语法是Swift 2的首选/默认语法,后一种是Swift 3的首选/默认语法。
在WWDC 2016的视频“ Swift API设计指南”中,他们描述了对Cocoa API中这种较旧的以前语法的印象:
因此,当您将所有为Objective-C编写的所有API未经修改地带入Swift时,它们似乎有点不合时宜。他们感到有些不快。
因此,根据Apple自己的估计,新语法更加快速。
话虽如此,如果您只考虑使用Swift 2.x,则为了保持一致性,可以轻松地提出坚持使用传统语法的理由。另外(在我看来,更引人注目的是),您可以开始采用新的语法,而您自然可以这样做,以简化Swift 3的迁移路径。
但是我不认为它像“总是在方法名称中包括参数名称”或“不”那样简单。在Swift 3中,有些情况下我们会定义第一个参数没有外部参数名称的方法(就像在Swift 2中一样,在某些情况下,我们会为第一个参数提供外部名称)。最好让该视频中概述的原理(或在swift.org网站上概述)来指导您的方法命名实践。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句