gpt4 book ai didi

swift - 为什么函数调用需要参数名称,而分配给变量的函数不允许?

转载 作者:搜寻专家 更新时间:2023-11-01 06:11:35 28 4
gpt4 key购买 nike

如果我有以下代码,为什么我不需要在函数调用中使用参数名称,而是在我尝试添加它们时抛出错误?

func foo(bar: Any) {}
var faz = foo

foo(1) // Missing argument label 'bar:' in call
foo(bar: 1)
faz(1)
faz(bar: 1) // Extraneous argument label 'bar:' in call

最佳答案

当你将你的方法分配为闭包时,你只是分配方法的参数类型和返回类型,所以你的闭包类型实际上是 (Types of arguments) -> Return type

在您的特定情况下:(Any) -> Void

如您所见,此闭包没有参数名称,您无法添加它们。因此,在调用闭包时添加参数标签是行不通的。

但是,您可以在声明闭包时命名参数,然后您可以在闭包范围内使用它...类似于声明函数

faz = { bar in 
... // you can work with bar of type `Any`
}

关于swift - 为什么函数调用需要参数名称,而分配给变量的函数不允许?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55522889/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com