日記
今日はカレーにした.カレーが食べたかったので.
今日書いたコード
今日はExtensionsの章だったが,例としてIntにsubscriptを追加するコードがあった.digitIndex
に19以上のIntを渡すとランタイムエラーが起きたのでなにごと!?と思ったが単に1010が64bitの符号付き整数では表せないだけだった.そんなことより指数がちゃんとsuperscriptで表示されるのすごいな.
import Foundation extension Int { subscript(digitIndex: Int) -> Int { var decimalBase = 1 for _ in 0..<digitIndex { decimalBase *= 10 } return (self / decimalBase) % 10 } } // 12345[19] print(Float(Int.max) < pow(10, 18)) // false print(Float(Int.max) < pow(10, 19)) // true
初めて知ったこと
とくになし