【发布时间】:2016-11-06 09:28:43
【问题描述】:
我有一个数组。目标是删除前两个索引值,然后调用最大 3 个值(然后平均它们)。我的问题是回忆第二个和第三个最大值 我的方法是调用最大值,然后删除最大值并调用新数组array1,然后从这个数组中调用最大值,这应该是整体第二高/最大值。
//调用最大值
var ammendedInitialArray = initialArray.dropFirst(2)
var max = Float(-1.0)
var stepmax1 = Int(-1)
for (index, value) in ammendedInitialArray.enumerated() {
if value > max{
max = value
stepmax1 = index
}
以上作品
ammendedInitialArray1 = ammendedInitialArray.remove(at: stepmax1)
var max2 = Float(-1.0)
var stepmax2 = Int(-1)
*****for (index, value) in ammendedInitialArray1.enumerated{ *****
if value > max{
max2 = value
stepmax2 = index
}
***** 行出现错误:Float 类型的值没有枚举成员
我不是说它是一个浮点数,我希望它是一个数组。
【问题讨论】:
-
这里有几件事让我担心:1) 不要将浮点字面量传递给浮点数,直接赋值即可:
var max2: Float = -1.0。 **2) 不要在 Swift 中使用 [sentinel values](en.wikipedia.org/wiki/Sentinel_value),如-1、""等。这正是可选项的用途。我建议你通读language guide