Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 3第一参数名称_Swift_Swift3 - Fatal编程技术网

Swift 3第一参数名称

Swift 3第一参数名称,swift,swift3,Swift,Swift3,在Swift 2中,调用函数时似乎并不总是需要第一个参数名。现在在Swift 3中,调用函数时需要第一个参数名。例如: func frobnicate(runcible: String) { print("Frobnicate: \(runcible)") } Swift 2.2允许通过简单键入以下内容来调用函数: Frobnicate("Station") Swift 3似乎要求我们使用方法的第一个参数名称,例如: Frobnicate(runcible:"Station")

在Swift 2中,调用函数时似乎并不总是需要第一个参数名。现在在Swift 3中,调用函数时需要第一个参数名。例如:

func frobnicate(runcible: String) { 
    print("Frobnicate: \(runcible)") 
}
Swift 2.2允许通过简单键入以下内容来调用函数:

Frobnicate("Station")
Swift 3似乎要求我们使用方法的第一个参数名称,例如:

Frobnicate(runcible:"Station")

Swift 3适用于所有函数和方法,还是仅适用于某些情况?

是Swift 3要求您发送第一个参数标签


请参考

是的,这是正确的。Swift正以这种方式解决语言不一致的问题(初始化者总是需要这样做)

如果不想使用外部参数名称,只需显式删除它:

func frobnicate(_ runcible: String) { 
    print("Frobnicate: \(runcible)") 
}

您可以准确地阅读

中的全部基本原理。在Swift 3.0中,必须为所有参数(包括第一个参数)写入参数名称。参数名称是函数实现体内部使用的名称

func frobnicate(runcible: String) { 
    print("Frobnicate: \(runcible)") 
}
默认情况下,如果未明确指定任何参数标签,则外部参数标签与参数名称相同。参数标签是用于在调用函数时传递参数的标签。如果需要,为了更清晰,还可以显式指定外部参数标签。下面的例子-

func frobnicate(runcibleExternalLabel runcible: String) { 
    print("Frobnicate: \(runcible)") 
}
如果您想在调用函数时跳过外部参数标签,只需在参数名称前加一个“\u1”

func frobnicate(_ runcible: String) { 
    print("Frobnicate: \(runcible)") 
}
你可以在i-Book上阅读。您也可以在WWDC 2016中查看此信息: 在Swift 3中,默认情况下,函数使用其参数名作为其参数的标签。在参数名称前写一个自定义参数标签,或写uu以不使用参数标签

fun greet(_ person: String, on day: String) -> String {
    return "Hello \(person), today is \(day)."
}
greet("John", on: "Wednesday")


需要参数标签的原因是,其他代码可以按任何顺序提供参数

如果没有标签,当您调用函数时,参数是匿名的,您无法确定是否以错误的顺序提供了它们

在参数和代码工具前面放置标签可以更好地捕捉我们人类输入的错误


下划线只是处理从遗留代码过渡的一种方式;包含隐式第一个参数的方法名称。您应该将迁移添加到代码中的任何下划线更改为显式参数标签。你知道这很有道理。

@auco,是的,链接断了,更新了备忘单。现在我知道了
的意思。谢谢你对这个问题的进一步解释。如果可以的话。这只适用于第一个参数还是所有参数?我不想不尊重这里的任何其他答案,但是,由于我的Swift“旅程”才开始几天,并且来自Java和中级Objective-C背景,这个答案最好将下划线的用法传达给我。我理解参数标签的用法或设置下划线。但我仍然感兴趣的是:什么是最佳实践,特别是在开发自己的框架时?我相信这取决于您选择最佳方式。也许我可以这样说-如果您的参数命名约定是明显的和自描述性的,那么您可能不需要外部参数标签。否则,可以选择指定标签。
// This also works with Swift 2
fun addThreeNumber(_ first: Int, _ second: Int, _ third: Int) {
    print(first+second+third)
}
addThreeNumber(1, 2, 3)