为什么在参数的参数中使用(点)?

时间:2015-08-11 18:20:44

标签: ios swift

目前正在尝试学习swift,我有点困惑为什么有些参数在它之前用点写,有些则没有。例如

向UIAlertView对象添加按钮

alert's name = simpleAlert

buttons title =“YES”

按钮的样式=默认

handler = nil

为什么写这个的合适方式是

simpleAlert.addAction(UIAlertAction(title:"YES",style: .Default, handler: nil))

而不是

simpleAlert.addAction(UIAlertAction(title:"YES",style: Default, handler: nil))

3 个答案:

答案 0 :(得分:2)

这是写UIAlertActionStyle.Default的简短方法(UIAlertActionStyle是枚举,Default是它的值。 UIAlertView已经知道您将使用UIAlertActionStyle作为该参数,因此您只需编写该枚举值即可。

答案 1 :(得分:1)

simpleAlert.addAction(UIAlertAction(title:"YES",style: .Default, handler: nil))

也可以写成

 simpleAlert.addAction(UIAlertAction(title:"YES",style: UIAlertActionStyle.Default
, handler: nil))

UIAlertActionStyle是Enum

enum UIAlertActionStyle : Int {

    case Default
    case Cancel
    case Destructive
}

所以.Default只是一个简化,这意味着已经给出了枚举类型,我们只需传递我们想要使用的正确案例。

答案 2 :(得分:1)

正如其他人已经说过的那样,这是UIAlertActionStyle.Default的简写。

跳过枚举的名称并简单地列出值(p而不是.Default)就是Swift“类型推断”的一个例子。

类型推断意味着如果编译器可以推断(计算出)某个值/参数的类型,则不必明确说明它。在上面的示例中,您为UIAlertActionStyle.Default提供的值必须是UIAlertActionStyle类型的值,因此您可以跳过该部分。