gpt4 book ai didi

swift - 在 Swift 扩展中访问具有多个参数的方法

转载 作者:行者123 更新时间:2023-11-28 10:31:08 26 4
gpt4 key购买 nike

我有一种方法可以将一些值归一化到可用范围内(例如,从 123-987 到 0-1)。

我想为此创建一个可重用的 CGFloat 扩展。该方法接受三个参数并根据下面的签名返回一个 CGFloat。如何将其制作成 CGFloat 的扩展,以便我可以将结果存储在变量中?

func range(position: CGFloat, min: CGFloat, max: CGFloat) -> CGFloat {
//
}

下面是一个工作示例,但这似乎是错误的做法。

extension CGFloat {
func range(position: CGFloat, min: CGFloat, max: CGFloat) -> CGFloat {
//
}
}
let float: CGFLoat = 0 // This seems needless, but I can't see another way of accessing the method
let result = float.range(position: 200, min: 123, max: 987)

关于如何正确编写它有什么建议吗?

最佳答案

您可以将range 方法设为static,然后将其调用为:

let result = CGFloat.range(position: 200, min: 123, max: 987)

但另一种方法是删除 position 参数并使用 self

extension CGFloat {
func range(min: CGFloat, max: CGFloat) -> CGFloat {
// ensure self is normalized to the range and return the updated value
}
}

let someFloat: CGFloat = 200
let result = someFloat.range(min: 123, max: 987)

关于swift - 在 Swift 扩展中访问具有多个参数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55853219/

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