无法将'CGFloat'类型的值转换为闭包结果类型'CGPoint'

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法将'CGFloat'类型的值转换为闭包结果类型'CGPoint'相关的知识,希望对你有一定的参考价值。

请考虑以下事项:

struct Entry {
    let points: [CGPoint]

    func squeezePoints(_ multiplier: CGFloat) -> [CGPoint]{
        return points.map{$0.x * multiplier}
    }
}

代码因错误而无法编译:Cannot convert value of type 'CGFloat' to closure result type 'CGPoint'

答案

你试图映射到CGFloat,但声明你的函数的返回类型为[CGPoint]。如果你想要乘以每个点的x坐标,修改你的函数以映射到CGPoint并保持y不被修改。

func squeezePoints(_ multiplier: CGFloat) -> [CGPoint]{
    return points.map{CGPoint(x: $0.x * multiplier, y: $0.y)}
}

以上是关于无法将'CGFloat'类型的值转换为闭包结果类型'CGPoint'的主要内容,如果未能解决你的问题,请参考以下文章

无法将 '[String : AnyObject]?.Type' 类型(又名 'Optional<Dictionary<String, AnyObject>>.Type)的值转

无法将类型为'Void'的值分配为类型为'String?'

SwiftUI误导性错误:'Int'不能转换为'CGFloat'

无法将'ViewController.Type'类型的值转换为预期的参数类型'UIViewController'

无法将'__ NSCFString'类型的值转换为'NSData'

无法将'__NSDictionaryM'(0x1111152b0)类型的值转换为'FIRDataSnapshot'Firebase Swift 3