单个 class (swift) 中的多个初始化器
Multiple Initializers in a single class (swift)
创建一个三角形 class 并使用属性存储每条边的长度。三边不等长的三角形叫不等边三角形,两条边等长的叫等腰三角形,三边等长的叫等边三角形。
为您的 class 创建一个带有三个参数并正确设置 class 属性的初始化程序。接下来,创建第二个初始化器以在三角形为等边形时使用。请记住,所有三个边的长度都相同,因此该方法应该只接受一个参数,但仍应设置所有三个属性。尝试先将此构造器编写为指定构造器,然后将其转换为便利构造器。
最后,我们需要一个带有两个参数的等腰三角形初始化器。想想你应该如何为你的参数设置外部名称,以明确哪个值将用于两侧
这个问题让我很困惑。我的问题是:我应该如何在单个 class 中创建等腰和斜角的 init
?还是我应该创建另一个 class?我需要帮助。我是 Swift 的新手。这是我到目前为止所得到的。
class Triangle {
var sideA: Int
var sideB: Int
var sideC: Int
init(sideA: Int, sideB: Int, sideC: Int) {
self.sideA = sideA
self.sideB = sideB
self.sideC = sideC
}
convenience init(equilateralWithEdge edge:Int) {
self.init(sideA: edge, sideB: edge, sideC:edge)
}
}
以下是如何将另一个初始化器添加到同一个 class 中,它将使用两个参数来创建等腰三角形:
class Triangle {
var sideA: Int
var sideB: Int
var sideC: Int
init(sideA: Int, sideB: Int, sideC: Int) {
self.sideA = sideA
self.sideB = sideB
self.sideC = sideA
}
init(sideA: Int, sideB: Int) {
self.sideA = sideA
self.sideB = sideB
self.sideC = sideB
}
convenience init(equilateralWithEdge edge:Int) {
self.init(sideA: edge, sideB: edge, sideC:edge)
}
}
class Your_ViewController : UIViewController {
var your_property_1 : String?
var your_property_2 : String?
init(your_property_1: String) {
self.your_property_1 = your_property_1
self.your_property_2 = nil
super.init(nibName: nil, bundle: nil)
}
init(your_property_2: String) {
self.your_property_2 = your_property_2
self.your_property_1 = nil
super.init(nibName: nil, bundle: nil)
}
override func viewDidLoad() {
super.viewDidLoad()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) is not supported")
}
}
创建一个三角形 class 并使用属性存储每条边的长度。三边不等长的三角形叫不等边三角形,两条边等长的叫等腰三角形,三边等长的叫等边三角形。
为您的 class 创建一个带有三个参数并正确设置 class 属性的初始化程序。接下来,创建第二个初始化器以在三角形为等边形时使用。请记住,所有三个边的长度都相同,因此该方法应该只接受一个参数,但仍应设置所有三个属性。尝试先将此构造器编写为指定构造器,然后将其转换为便利构造器。 最后,我们需要一个带有两个参数的等腰三角形初始化器。想想你应该如何为你的参数设置外部名称,以明确哪个值将用于两侧
这个问题让我很困惑。我的问题是:我应该如何在单个 class 中创建等腰和斜角的 init
?还是我应该创建另一个 class?我需要帮助。我是 Swift 的新手。这是我到目前为止所得到的。
class Triangle {
var sideA: Int
var sideB: Int
var sideC: Int
init(sideA: Int, sideB: Int, sideC: Int) {
self.sideA = sideA
self.sideB = sideB
self.sideC = sideC
}
convenience init(equilateralWithEdge edge:Int) {
self.init(sideA: edge, sideB: edge, sideC:edge)
}
}
以下是如何将另一个初始化器添加到同一个 class 中,它将使用两个参数来创建等腰三角形:
class Triangle {
var sideA: Int
var sideB: Int
var sideC: Int
init(sideA: Int, sideB: Int, sideC: Int) {
self.sideA = sideA
self.sideB = sideB
self.sideC = sideA
}
init(sideA: Int, sideB: Int) {
self.sideA = sideA
self.sideB = sideB
self.sideC = sideB
}
convenience init(equilateralWithEdge edge:Int) {
self.init(sideA: edge, sideB: edge, sideC:edge)
}
}
class Your_ViewController : UIViewController {
var your_property_1 : String?
var your_property_2 : String?
init(your_property_1: String) {
self.your_property_1 = your_property_1
self.your_property_2 = nil
super.init(nibName: nil, bundle: nil)
}
init(your_property_2: String) {
self.your_property_2 = your_property_2
self.your_property_1 = nil
super.init(nibName: nil, bundle: nil)
}
override func viewDidLoad() {
super.viewDidLoad()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) is not supported")
}
}