私は迅速に「読み取り専用」のヘルプが必要です。私はいろいろ試してみましたが、エラーなくコンパイルする方法を理解できませんでした。ここに質問と私が考えたことがあります。読み取り専用プロパティ
三角形の3辺がすべて同じ長さであるかどうかをチェックし、そうでない場合はtrueを返すisEquilateralという名前の読み取り専用の計算されたプロパティを作成します。
var isEquilateral: Int {
}
私は迅速に「読み取り専用」のヘルプが必要です。私はいろいろ試してみましたが、エラーなくコンパイルする方法を理解できませんでした。ここに質問と私が考えたことがあります。読み取り専用プロパティ
三角形の3辺がすべて同じ長さであるかどうかをチェックし、そうでない場合はtrueを返すisEquilateralという名前の読み取り専用の計算されたプロパティを作成します。
var isEquilateral: Int {
}
これは何か? (コメントで@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
それは絶対に美しいです!ありがとうございました。どうか教えてください。なぜ私はちょうど言うことができない – AllocSystems
それは絶対に美しいです!ありがとうございました。どうか教えてください。なぜ私はちょうどreturn edgeA == edgeB == edgeCと言うことができませんか? – AllocSystems
@AllocSystemsよろしくお願いします。構文 'edgeA == edgeB == edgeC'はSwiftで__not__で有効です。しかし、私がコードで使ったタプルを避けたいのであれば、 'edgeA == edgeB && edgeB == edgeC'と書くことができます。 –
あなたは、保存されたプロパティを「読み取り専用」private(set)
を使用したい場合は、次の、
private(set) var isEquilateral = false
それは他のプロパティから計算プロパティの場合、は、はい、使用計算プロパティ:
をvar isEquilateral: Bool {
return a == b && b == c
}
それをテストしてみましょう。今、体を埋める。 'return side1 == side2 && side2 == side3'のようなものです。ここで' side1'、 'side2'、および' side3'はクラス/構造体のプロパティです。ああ、isEquilateralはIntではなくBoolでなければなりません。 – vacawama