Swift:调用函数时调用 EXC_BAD_INSTRUCTION
Posted
技术标签:
【中文标题】Swift:调用函数时调用 EXC_BAD_INSTRUCTION【英文标题】:Swift: EXC_BAD_INSTRUCTION called when calling function 【发布时间】:2018-04-01 23:51:38 【问题描述】:所以我试图让标准偏差函数工作,但是我遇到了一个错误。这是我的代码:
func standardDeviation(dataSet: [Double]) -> Double
let mean = dataSet.reduce(0, +) / Double(dataSet.count)
var distances = [Double]()
for number in dataSet
let distanceFromMean = (dataSet[Int(number)] - mean)
distances.append(distanceFromMean * distanceFromMean)
return distances.reduce(0, +) / Double(dataSet.count)
输出如下错误:
致命错误:索引超出范围
所以,当我调用dataSet数组时,我有一种感觉,所以当我查看它时,我发现这是一个错误
错误:执行被中断,原因:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)。 进程一直停留在中断点,使用“thread return -x”返回表达式求值前的状态。
【问题讨论】:
【参考方案1】:number
(Double
!)不能作为订阅dataSet
的索引,所以我很确定你意思是
let distanceFromMean = number - mean
在Fast Enumeration
模式中,索引变量number
实际上等于array[index]
【讨论】:
以上是关于Swift:调用函数时调用 EXC_BAD_INSTRUCTION的主要内容,如果未能解决你的问题,请参考以下文章
Swift UITableView 仅在我按下几秒钟时调用 didSelectRowAt