为什么Method只需要第二个参数“参数”?

时间:2016-05-18 19:23:55

标签: swift

我在int pid = android.os.Process.myPid(); android.os.Process.killProcess(pid); 类中有以下方法:

User

为什么在地球上它只能在我指定第二个参数“label”时调用它(不确定它叫什么)?

func Login(username: String, password: String) -> String
{
    return "Login Success";
}

如果我做了以下操作,我收到了错误:

var loginReturn = user.Login("aa", password: "zz");

我对Swift不满意。

3 个答案:

答案 0 :(得分:6)

来自Functions in Swift

  

函数参数具有外部参数名称和本地参数名称。外部参数名称用于标记传递给函数调用的参数。本地参数名称用于函数的实现。   (......)   默认情况下,第一个参数省略其外部名称,第二个和后续参数使用其本地名称作为其外部名称。   (...)

     

省略外部参数名称

     

如果您不想为函数的第二个或后续参数使用外部名称,请为该参数写下划线(_)而不是显式外部名称。

我建议你阅读整章,它应该清除你的困惑。

另请注意,外部参数名称在技术上是函数/方法名称的一部分。

答案 1 :(得分:1)

你可以这样写:

func Login(username: String, _ password: String) -> String
{
    return "Login Success";
}

对于每个方法参数,您可以定义“内部”和“外部”参数,这些参数将定义方法调用的最终外观。

答案 2 :(得分:1)

如果您调用具有两个参数的函数,则必须在第一个参数之后列出参数的名称(如果它们具有名称)。按照目前的方式,你已经编写了你的​​功能......

此代码有效

var loginReturn = login("aa", password: "zz")

此代码失败

var loginReturn = login("aa", "zz")