Swift 闭包编译失败,表达式太复杂

标签 swift xcode closures compiler-bug

public static func easeOutQuint(_ t: Float, _ b: Float, _ c: Float, _ d: Float = 1.0) -> Float {
    return {
        return c * ($0 * $0 * $0 * $0 * $0 + 1.0) + b
    }(t / d - 1.0)
}

我对闭包不熟悉,所以我无法自己修复它,有人可以帮助我吗?

最佳答案

闭包是一个很棒的工具,但是,在这个特定的例子中,在我看来,没有它们你会更好......

例如,您可以将函数简单地重写为:

public static func easeOutQuint(_ t: Float, _ b: Float, _ c: Float, _ d: Float = 1.0) -> Float {
    let x = (t / d - 1.0)
    return c * (pow(x, 5) + 1) + b
}

顺便说一句,这应该可以在您遇到的任何 Swift 编译器中编译良好;)

关于Swift 闭包编译失败,表达式太复杂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47047579/

相关文章:

ios - 在 itunesConnect 中,我的应用程序显示 Apple Pay 选项,我正在使用 Braintree。如何摆脱在我的 itunesConnect 中显示 Apple Pay 选项?

swift - .oberve(.childAdded) 产生错误,而 .observeSingleEvent(: . 值)不是

ios - 如何删除 UIViewController 类的 xib 文件?

javascript - 是否可以像在 Javascript 中那样在 AS2 中使用闭包?

java - 关闭和回调

ios - 在不引用自身的情况下获取 ClassName

ios - 在 Collection View 中设置图像和名称 swift 5

javascript - for 循环中的函数的行为类似于闭包

objective-c - react 性 cocoa : creating a signal that applies a map over an observer

ios - projectName 没有 deviceName 可以执行的架构