我需要帮助"只读"在迅速。我尝试了各种方法,但根本无法弄清楚如何编译它而没有错误。这就是问题以及我的想法。
创建一个名为isEquilateral的只读计算属性,它检查三角形的所有三边是否相同,如果是,则返回true,如果不是则返回false。
var isEquilateral: Int {
}
答案 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