ぜのぜ

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

68日目

日記

なし

今日書いたコード

今日はType Castingの章を読んだ

var things: [Any] = []

things.append(0)
things.append(0.0)
things.append(42)
things.append(3.14159)
things.append("hello")
things.append((3.0, 5.0))
things.append({ (name: String) -> String in "Hello, \(name)" })

for thing in things {
    switch thing {
    case 0 as Int:
        print("zero as an Int")
    case 0 as Double:
        print("zero as a Double")
    case let someInt as Int:
        print("an integer value of \(someInt)")
    case let someDouble as Double where someDouble > 0:
        print("a positive double value of \(someDouble)")
    case is Double:
        print("some other double value that I don't want to print")
    case let someString as String:
        print("a string value of \"\(someString)\"")
    case let (x, y) as (Double, Double):
        print("an (x, y) point at \(x), \(y)")
    case let stringConverter as (String) -> String:
        print(stringConverter("Michael"))
    default:
        print("something else")
    }
}

初めて知ったこと

Type Casting自体は知ってた.そんなことよりSwiftのswitchがこんなに便利だとは思わなかった.let someDouble as Double where someDouble > 0はかゆいところに手が届きそう.こういう発見があるからいいよね.