これらの手法のどちらが高速で実行されるのか、その理由は何ですか?Swift Micro最適化:fall-thoughが発生しない複数のif文対else if
if文を使用すると、numberOnePlusOne
を1回だけ計算できます。
func test(numberOne:Int, numberTwo:Int) {
if numberOne == numberTwo {
return
}
let numberOnePlusOne = numberOne + 1
if numberOnePlusOne == numberTwo && numberOnePlusOne < numberTwo {
return
} else {
return
}
}
だから、他の場合には有益であるならば、私は利益がブロックが落ち-かかわらすることはできません操作せずにコンパイラに伝えるからだろう引き受ける使用した場合。
func test(numberOne:Int, numberTwo:Int) {
if numberOne == numberTwo {
return
} else if numberOne + 1 == numberTwo && numberOne + 1 < numberTwo {
return
} else {
return
}
}
このコードは実行されることはありませんでした。基本構造は、私が取り組んでいたI/Oバウンドプロジェクトから派生したものです。コンパイラがどのように対処するかについての好奇心のために、マイクロ最適化に対する欲求ではありません。 – oneofone