【发布时间】:2014-09-18 06:47:07
【问题描述】:
如果与它一起使用的数组是 UInt 类型,为什么下面的 Array 扩展会崩溃,但如果数组是 Int 或 String 类型,则它可以工作?
extension Array
{
func indexOf<T:Equatable>(value:T) -> Int?
{
for (i, val) in enumerate(self)
{
if (val as T == value)
{
return i;
}
}
return nil;
}
}
var a:[UInt] = [243, 234, 1, 212, 3, 56, 88, 11, 77];
var i = a.indexOf(234);
产生的错误:
Playground 执行失败:错误:执行被中断,原因:EXC_BREAKPOINT(代码=EXC_I386_BPT,子代码=0x0)。
进程一直停留在被中断的地方,使用“thread return -x”返回到表达式求值前的状态。
* 线程#1:tid = 0x27a3c, 0x00000001079d3f27 libswift_stdlib_core.dylibswift_dynamicCast + 1063, queue = 'com.apple.main-thread', stop reason = EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)
* frame #0: 0x00000001079d3f27 libswift_stdlib_core.dylibswift_dynamicCast + 1063
第 1 帧:0x00000001137bbbc8
【问题讨论】:
-
与您之前(现已删除)的问题stackoverflow.com/questions/24971573/… 有何不同?
-
与您在我之前的问题中的评论相比,您的评论的相关性在哪里?!
标签: arrays generics swift uint