首页 > 解决方案 > 为什么 self 与 init 一起使用而不是 color

问题描述

我正在参加关于 swift 的在线课程,并展示了一个示例。为什么 self 与 init 方法调用一起使用而不是颜色?

class Car {

    var colour = "Black"
    var numberOfSeats = 5
    var typeOfCar : CarType = .Coupe

    init() {

    }

    convenience init (customerChosenColour : String) {
        self.init()
        colour = customerChosenColour
    }
}

标签: swiftself

解决方案


init()当有人像这样创建该类的新实例时运行:

var newInstanceOfCar = Car()

Aconvenience init允许您为某些用例创建其他初始化程序,例如当customerChosenColour需要指定 a 时。在这些情况下,它使事情变得更加方便。

之所以self使用,是因为在创建的时候convenience init,还需要调用“main” init,它是 的一个属性self


您可以self在颜色上使用,但这不是必需的。self.colour如果不明确,您将使用,colour就像在这个例子中一样:

class Car {

    var colour = "Black"
    var numberOfSeats = 5
    var typeOfCar : CarType = .Coupe

    init() {

    }

    convenience init (colour : String) {
        self.init()
        self.colour = colour
    }
}

注意colour是 的属性Car,也是 的参数名称convenience init。写起来会很混乱colour = colour

所以我们常self说我们希望类中的变量 ,self.colour等于参数的值 , colour


推荐阅读