トップページ > プログラム > 2014年07月18日 > YBUygO17

書き込み順位&時間帯一覧

17 位/190 ID中時間01234567891011121314151617181920212223Total
書き込み数1100000100000000000000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Swift part2

書き込みレス一覧

Swift part2
837 :デフォルトの名無しさん[sage]:2014/07/18(金) 00:55:26.79 ID:YBUygO17
var i:UInt16 = ~0
i += 1
// Arithmetic operation '65535 + 1' (on type 'UInt16') results in an overflow)
だとコンパイルエラーで弾いてくれる
i++ は素通りして 0 になる。
これは仕様どうり?それとも未定義動作なんかね?
Swift part2
840 :デフォルトの名無しさん[sage]:2014/07/18(金) 01:02:38.24 ID:YBUygO17
それとは別に、
~0 なんて書かなくても、 UInt16.max で最大値拾えるのは偉いですね
Swift part2
843 :デフォルトの名無しさん[sage]:2014/07/18(金) 07:52:58.79 ID:YBUygO17
Optimization Level: Fastest[-O] にすると
実際のエラー箇所(i++)からズレた所にエラー出る場合があり
var i= Int.max
i++
println(i)
var dic = ["Objective": "C", "Jonathan": "Swift"] // ← EXC_BAD_INSTRUCTION
for (k,v) in dic {
 println("Key: \(k), Value:\(v)")
}

さすがにXcodeのバグかな? β版だし


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。