ぜのぜ

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

47日目

日記

休日が実質残り1日しかないので泣きそう.そういえば右上のはてなのロゴが変わってる.

今日書いたコード

struct Size {
    var width = 0.0, height = 0.0
}
struct Point {
    var x = 0.0, y = 0.0
}

struct Rect {
    var origin = Point()
    var size = Size()

    init(center: Point, size: Size) {
        let originX = center.x - (size.width / 2)
        let originY = center.y - (size.height / 2)

        origin = Point(x: originX, y: originY)
        self.size = size
    }
}

struct AnotherRect {
    var origin = Point()
    var size = Size()
}

extension AnotherRect {
    init(center: Point, size: Size) {
        let originX = center.x - (size.width / 2)
        let originY = center.y - (size.height / 2)
        self.init(origin: Point(x: originX, y: originY), size: size)
    }
}

print(Rect().origin) // Missing arguments for parameters 'center', 'size' in call
print(AnotherRect().origin)

初めて知ったこと

定義の中にカスタムイニシャライザを書くとデフォルトイニシャライザは提供されなくなるが,extensionの中で書くと提供される.