如何在不收到此错误的情况下运行此操作?
无法调用' stride'使用类型'的参数列表(来自:Double,to:[Double],by:Double)'
我知道答案就在那里,但我对编码很陌生,而且我很难让[双]只在函数中加倍。
const getCamerasFromState = (state: IState): ICameras =>
_.omit(state, "loading", "error")
我明白为什么它不起作用,因为我告诉他们最后是一个数组。但是我如何让它单独运行数组的每个组件。我认为做var array = [50.0, 40.0, 60.0]
var newArray = [Float]()
func possible(variable: [Double]) -> Float {
var chance: Double = 0.0
let last = variable
let interval = -10.0
for _ in stride(from: 100.0, to: last, by: interval) {
chance += 0.05
}
return Float(chance)
}
newArray.append(possible(variable: array))
会有效,但事实并非如此。
理想情况下,最终结果为let last = (variable[index])
答案 0 :(得分:2)
您需要variable
参数为单个Double
,而不是数组。然后,您需要为possible
中的每个值调用array
一次。
以下是更新代码的一种方法:
var array = [50.0, 40.0, 60.0]
func possible(variable: Double) -> Float {
var chance: Double = 0.0
let interval = -10.0
for _ in stride(from: 100.0, to: variable, by: interval) {
chance += 0.05
}
return Float(chance)
}
let newArray = array.map { possible(variable: $0) }
print(newArray)
但这是possible
的简单实现:
func possible(variable: Double) -> Float {
return Float((100 - variable) / 10 * 0.05)
}
您的整套代码可以简化为:
var array = [50.0, 40.0, 60.0]
let newArray = array.map { Float((100 - $0) / 10 * 0.05) }