只读属性

时间:2016-12-21 22:33:10

标签: swift readonly

我需要帮助"只读"在迅速。我尝试了各种方法,但根本无法弄清楚如何编译它而没有错误。这就是问题以及我的想法。

创建一个名为isEquilateral的只读计算属性,它检查三角形的所有三边是否相同,如果是,则返回true,如果不是则返回false。

var isEquilateral: Int {

}

3 个答案:

答案 0 :(得分:82)

如果你想要一个"只读"存储的属性,请使用private(set)

private(set) var isEquilateral = false

如果它是从其他属性计算的属性,则是,使用computed属性:

var isEquilateral: Bool {
    return a == b && b == c
}

答案 1 :(得分:15)

这样的东西? (正如 @vacawama 在评论中所建议的那样)

struct Triangle {
    let edgeA: Int
    let edgeB: Int
    let edgeC: Int

    var isEquilateral: Bool {
        return (edgeA, edgeB) == (edgeB, edgeC)
    }
}

让我们测试一下

let triangle = Triangle(edgeA: 5, edgeB: 5, edgeC: 5)
triangle.isEquilateral // true

let triangle = Triangle(edgeA: 2, edgeB: 2, edgeC: 1)
triangle.isEquilateral // false

答案 2 :(得分:0)

只读属性是具有int size = 0; int x = 0; std::cin >> size; std::vector<int> Myvec[size]; for(int i = 0; i < size; i++) { std::cin >> x; Myvec[i].push_back(x); } 但没有getter的属性。始终用于返回值。

setter