ぜのぜ

しりとりしようぜのぜのぜのぜ

70日目

日記

今日はカレーにした.カレーが食べたかったので.

今日書いたコード

今日は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

初めて知ったこと

とくになし