Bool","Int-> Bool -> Int","Int-> String -> Int-> Bool"-6ren"> Bool","Int-> Bool -> Int","Int-> String -> Int-> Bool"-有一个函数: func (first: Int) -> Int -> Bool -> String { return ? } 返回值怎么写?我对上面 func 的返回类型感到很困惑。 最-6ren">
gpt4 book ai didi

ios - 类型 "Int -> Bool","Int-> Bool -> Int","Int-> String -> Int-> Bool"

转载 作者:搜寻专家 更新时间:2023-10-30 22:28:32 25 4
gpt4 key购买 nike

有一个函数:

 func (first: Int) -> Int -> Bool -> String {

return ?
}

返回值怎么写?我对上面 func 的返回类型感到很困惑。

最佳答案

当涉及到解析函数/闭包返回时,从右到左阅读。最右边最外面的是返回类型,你可以把剩下的放在括号里。

因此,您的函数声明等同于

func (first: Int) -> ((Int) -> ((Bool) -> String))

func (first: Int)(_ second: Int)(_ third: Bool) -> String

尽管 Swift 3.0 将不再支持这种形式(感谢@Andrea 提醒)。

这被称为 function currying .您的函数返回一个以 Int 作为参数的函数,并返回另一个以 Bool 作为参数并返回 String 的函数。这样你就可以轻松链接函数调用。

因此您的方法主体必须返回列表中的第一个函数,该函数具有以下签名:

func ((Int) -> ((Bool) -> String))

然后你可以这样调用它:

f(1)(2)(true)

关于ios - 类型 "Int -> Bool","Int-> Bool -> Int","Int-> String -> Int-> Bool",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34505096/

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