ブール値を返す関数を作成するときは、if/elseのすべての文を返す必要がありますか?`else return`または` return`を使うべきでしょうか?
たとえば、あなたは、ファイルが迅速に存在していることを確認したい場合、あなたは
func fileExists() -> Bool
{
if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first
{
let path = dir.appendingPathComponent("\(self.name).\(self.type)")
if(FileManager.default.fileExists(atPath: path.path))
{
return true
}
}
return false
}
を行うだろう疑問が示すように、条件が満たされた場合、我々は関数の最後にreturn false
を追加する必要があり、あります上記、または私たちが私に
func fileExists() -> Bool
{
if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first
{
let path = dir.appendingPathComponent("\(self.name).\(self.type)")
if(FileManager.default.fileExists(atPath: path.path))
{
return true
} else {
return false
}
} else {
return false
}
}
(下図参照)、各if
なステートメントにreturn false
を追加する必要があり、最初の例はクリーナーに見えます、しかし、私はこれは良い習慣であることを確認していません。それはよりきれいに見えますが、私は代わりに最高の/最も安全な方法を使用したいので、この質問は最もよく見えるものに関する意見ではありません。
この質問は言語固有ですか?その場合は、適切な言語タグを追加してください。 – Quentin
@Quentinこれは言語固有ではありません。私もjavaを使用しているので、他の言語についても知りたいです。与えられた例は、当時私がそのプロジェクトに取り組んでいたためです。 – iProgram
ここをクリックしてくださいhttp://refactoring.com/catalog/replaceNestedConditionalWithGuardClauses.html –