gpt4 book ai didi

swift - 单个类中的多个初始化器(swift)

转载 作者:行者123 更新时间:2023-12-03 19:42:35 28 4
gpt4 key购买 nike

创建一个带有属性的 Triangle 类来存储每条边的长度。当三边长度不同时,三角形称为不等边形,当两条边长度相同时称为等腰三角形,当三边长度相同时称为等边三角形。

为您的类创建一个初始化程序,它接受三个参数并正确设置类属性。接下来,创建第二个初始值设定项以在三角形为等边三角形时使用。请记住,所有三个边的长度都相同,因此此方法应该只接受一个参数,但仍应设置所有三个属性。尝试先将此构造器编写为指定构造器,然后再将其转换为便利构造器。
最后,我们需要一个带两个参数的等腰三角形的初始化器。想想你应该如何为你的参数设置外部名称,以明确两个方面将使用哪个值

这个问题让我非常困惑。我的问题是:我应该如何创建 init在一个类中的等腰线和不等边线?还是我应该创建另一个类?我需要帮助。我是 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 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)
}

}

关于swift - 单个类中的多个初始化器(swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41107108/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com