我有一个带浮点数的Range。我需要获取范围的第一个和最后一个元素。使用Range,一切正常。但是,当我尝试从浮动范围获取值时,出现错误“对成员'first'的含糊引用”。如何从浮动范围获取值?
我尝试了投射,展开-同样的错误。看过类似问题的帖子,但似乎没有任何作用。
让范围:范围= 1.0 .. <3.22
让first开始:CGFloat = range.first(!)(对成员“ first”的含糊引用)
我希望从范围中获得第一项,相反,我会得到一个错误。
答案 0 :(得分:3)
first
是Collection
协议的方法(而last
是BidirectionalCollection
的方法)。仅当基础元素类型是整数类型或任何其他符合Strideable
协议且整数跨度的类型时,Range
才是(双向)集合。示例:
let intRange = 1..<10
print(intRange.first!) // 1
print(intRange.last!) // 9
浮点数范围不是集合,因此没有first
或last
方法。但是您可以检索上下限
let range: Range<CGFloat> = 1.0..<3.22
print(range.lowerBound) // 1.0
print(range.upperBound) // 3.22