“缺少参数标签'arg1:arg2:'在通话中”

时间:2018-03-11 19:28:09

标签: swift function

var sum1 = 0 


func calculatorMath(arg1: Int, arg2: Int) -> Int {
        sum1 = arg1 + arg2
        return sum1
    }

calculatorMath(20,50)

//问题是“缺少参数标签'arg1:arg2:'在调用中”。我需要做什么?

2 个答案:

答案 0 :(得分:0)

我同意Martin R.如果你使用Xcode,你应该得到一个自动修复错误。调用该函数的正确方法是:

m

如果参数标签出错,请务必在调用该函数时检查它是否包含它们。

祝你好运!

Arnav

答案 1 :(得分:0)

已经建议您可以通过将调用更改为:

来解决此问题
calculatorMath(arg1: 20, arg2: 50)

您也可以通过将声明更改为:

来解决此问题
func calculatorMath(_ arg1: Int, _ arg2: Int) -> Int {

说明:在Swift中,每个参数都有两个名字; 调用者必须指定的可选外部名称,以及函数正文使用的本地名称(被调用者)。首先列出可选的外部名称。如果省略,则调用者必须使用本地名称,如果外部名称为_(下划线),则调用者不得使用任何名称。

例如,您可以将您的函数声明为:

func calculatorMath(_ arg1: Int, arg2: Int) -> Int {

然后调用将不需要第一个arg上的标签,而第二个arg上的一个是:

calculatorMath(20, arg2: 50)

注意: Swift书的名称/标签名称会有所不同:

  

函数参数标签和参数名称

     

每个函数参数都有参数标签参数名称。调用函数时使用参数标签;每个参数都写在函数调用中,其前面带有参数标签。参数名称用于函数的实现。默认情况下,参数使用其参数名称作为参数标签。

VS

  

参数→external-parameter-name opt local-parameter-name type-annotation

     

external-parameter-name→identifier

     

local-parameter-name→identifier

摘自:Apple Inc.“The Swift Programming Language(Swift 4.0.3)。”