gpt4 book ai didi

Swift 3 通用类型函数将数值限制在 0 和 1 区间

转载 作者:行者123 更新时间:2023-11-28 06:16:08 29 4
gpt4 key购买 nike

我想编写一个函数,将数值限制在封闭的 0,1 区间内:

func clamp01<T:???>(_ value:T) -> T {
return value < 0 ? 0 : value > 1 ? 1 : value
}

在 Swift 3 中,如果我使用 T:Strideable,我会提示 0 和 1 必须进行类型转换(0 as!T 解决了这个问题,但这是强制的投)。

在 Swift 4 中我可以使用 T:Numeric 但我还没有尝试过——我正在寻找 Swift 3 中的解决方案。

最佳答案

您可以为所有 Comparable 类型定义函数也是 ExpressibleByIntegerLiteral,涵盖所有整数和浮点类型:

func clamp01<T: Comparable & ExpressibleByIntegerLiteral>(_ value: T) -> T { 
return value < 0 ? 0 : value > 1 ? 1 : value
}

关于Swift 3 通用类型函数将数值限制在 0 和 1 区间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45088528/

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