次の配列拡張で使用される配列が UInt 型の場合にクラッシュするのに、配列が 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);
生成されたエラー:
プレイグラウンドの実行に失敗しました: エラー: 実行が中断されました。理由: EXC_BREAKPOINT (コード=EXC_I386_BPT、サブコード=0x0)。プロセスは中断された時点で残っています。"thread return -x" を使用して、式の評価前の状態に戻します。* スレッド #1: tid = 0x27a3c, 0x00000001079d3f27 libswift_stdlib_core.dylib swift_dynamicCast + 1063, queue = 'com.apple.main-thread', stop reason = EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)
* frame #0: 0x00000001079d3f27 libswift_stdlib_core.dylib
swift_dynamicCast + 1063 フレーム #1: 0x00000001137bbbc8