为什么Swift方法只需要第二次输入的标签?

时间:2015-02-23 00:59:31

标签: ios swift methods

调用函数时,我不需要标记输入值。当调用类中的方法时,我被要求仅标记 第二个输入。为什么呢?!

func addVals(value1: Int, value2: Int) -> Int{
    println(value1)
    println(value2)
    let value3 = value1 + value2
    println(value3)
    return value3
}

let val1 = 1
let val2 = 6
// this works with no labels
addVals(val1, val2) // evals to 7

// in a class
class testClass {
    func addVals(value1: Int, value2: Int) -> Int{
        println(value1)
        println(value2)
        let value3 = value1 + value2
        println(value3)
        return value3
    }

    func callAddVals() -> Int {
        let val1 = 35
        let val2 = 46
        // only second input needs label??!!
        return addVals(val1,value2: val2)
    }
}

1 个答案:

答案 0 :(得分:4)

这样方法名称就像自然语言一样。看看:

mySpriteNode.runAction(dance, withKey:"NodeDance")

参数标签withKey很清楚该字符串是什么,但请参阅以下版本中的冗余?

mySpriteNode.runAction(action:dance, withKey:"NodeDance")

第一个参数没有必要有标签;它可以在方法名称中包含(更具表现力!)。