iOS:无法从Range <CGFloat>获取第一项值

时间:2019-07-30 08:33:50

标签: ios swift range cgfloat

我有一个带浮点数的Range。我需要获取范围的第一个和最后一个元素。使用Range,一切正常。但是,当我尝试从浮动范围获取值时,出现错误“对成员'first'的含糊引用”。如何从浮动范围获取值?

我尝试了投射,展开-同样的错误。看过类似问题的帖子,但似乎没有任何作用。

让范围:范围= 1.0 .. <3.22

让first开始:CGFloat = range.first(!)(对成员“ first”的含糊引用)

我希望从范围中获得第一项,相反,我会得到一个错误。

1 个答案:

答案 0 :(得分:3)

firstCollection协议的方法(而lastBidirectionalCollection的方法)。仅当基础元素类型是整数类型或任何其他符合Strideable协议且整数跨度的类型时,Range才是(双向)集合。示例:

let intRange = 1..<10
print(intRange.first!) // 1
print(intRange.last!)  // 9

浮点数范围不是集合,因此没有firstlast方法。但是您可以检索上下限

let range: Range<CGFloat> = 1.0..<3.22
print(range.lowerBound)  // 1.0
print(range.upperBound)  // 3.22