gpt4 book ai didi

swift - 将具有多个参数的函数分配给变量

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

我正在尝试弄清楚如何将具有多个参数的函数分配给一个变量。当它只是一个简单的函数时,它工作正常:

func aFunc(val: Int) {
print(val)
}

let alias = aFunc
alias(3)

但是我得到一个错误:

func handleShip(captain: Pirate, helmsman: Pirate, ship: Ship) {
print("Handing the ship")
}

func handleShip(helmsman: Pirate, ship: Ship) {
print("Handling the ship")
}

let handleShipAlias: (Pirate, Pirate, Ship) = handleShip

我得到:

Ambiguous reference to member 'handleShip(captain:helmsman:ship:)'

有没有办法引用handleShip(captain: Pirate, helmsman: Pirate, ship: Ship)

最佳答案

函数handleShip(captain: Pirate, helmsman: Pirate, ship: Ship)的类型实际上是(Pirate, Pirate, Ship)->() 和不仅仅是 (Pirate, Pirate, Ship)

通过相应地更改 handleShipAlias,您的代码可以正常编译。

let handleShipAlias: (Pirate, Pirate, Ship)->() = handleShip

没有显式返回值的函数默认返回 Void(它是空元组 () 的类型别名)并且因为函数的类型由类型组成输入参数加上返回类型,您必须在表示函数的变量类型中包含 Void 返回类型。

关于swift - 将具有多个参数的函数分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46958712/

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