iOS: 无法从范围<CGFloat> 中获取第一项值
iOS: Can't get first item value from Range<CGFloat>
我有一个带浮点数的范围。我需要获取范围的第一个和最后一个元素。使用 Range 一切正常。但是,当我尝试从浮点范围获取值时,出现错误 "Ambiguous reference to member 'first'"。如何从浮点范围获取值?
我试过转换、展开 - 同样的错误。查看有类似问题的帖子,但似乎没有任何效果。
设范围:范围=1.0..<3.22
首先:CGFloat = range.first (!)(对成员的引用不明确 'first')
我希望从范围中获取第一项,但我收到了错误。
first
是 Collection
协议的一种方法(而 last
是 BidirectionalCollection
的一种方法)。仅当基础元素类型是整数类型或符合具有整数跨度的 Strideable
协议的任何其他类型时,Range
才是(双向)集合。示例:
let intRange = 1..<10
print(intRange.first!) // 1
print(intRange.last!) // 9
一系列浮点数不是集合,所以没有first
或last
方法。但是你可以检索 lower/upper bound:
let range: Range<CGFloat> = 1.0..<3.22
print(range.lowerBound) // 1.0
print(range.upperBound) // 3.22
我有一个带浮点数的范围。我需要获取范围的第一个和最后一个元素。使用 Range 一切正常。但是,当我尝试从浮点范围获取值时,出现错误 "Ambiguous reference to member 'first'"。如何从浮点范围获取值?
我试过转换、展开 - 同样的错误。查看有类似问题的帖子,但似乎没有任何效果。
设范围:范围=1.0..<3.22
首先:CGFloat = range.first (!)(对成员的引用不明确 'first')
我希望从范围中获取第一项,但我收到了错误。
first
是 Collection
协议的一种方法(而 last
是 BidirectionalCollection
的一种方法)。仅当基础元素类型是整数类型或符合具有整数跨度的 Strideable
协议的任何其他类型时,Range
才是(双向)集合。示例:
let intRange = 1..<10
print(intRange.first!) // 1
print(intRange.last!) // 9
一系列浮点数不是集合,所以没有first
或last
方法。但是你可以检索 lower/upper bound:
let range: Range<CGFloat> = 1.0..<3.22
print(range.lowerBound) // 1.0
print(range.upperBound) // 3.22