私は単純な電卓のアプリケーションのためのこれらのコード行に出くわしました。オプションではない変数のラップを解除しますか?
func processOperation (operation: Operation) {
if currentOperation != Operation.Empty {
if runningNumber != "" {
rightValStr = runningNumber
runningNumber = ""
if currentOperation == Operation.Multiply {
result = "\(Double(leftValStr)! * Double(rightValStr)!)"
} else if currentOperation == Operation.Divide {
result = "\(Double(leftValStr)!/Double(rightValStr)!)"
} else if currentOperation == Operation.Subtract {
result = "\(Double(leftValStr)! - Double(rightValStr)!)"
} else if currentOperation == Operation.Add {
result = "\(Double(leftValStr)! + Double(rightValStr)!)"
}
leftValStr
はvar leftValStr = ""
rightValStr
として宣言されても、私が使用してどのような目的を疑問に思ってvar rightValStr =""
として宣言されています "!"で\(Double(leftValStr)!/Double(rightValStr)!)
ですか? 私が知っていることから、 "!"オプションのアンラップ用です。ここのleftValStrとrightValStrはオプションとして宣言されていないので、なぜそれらをアンラップする必要がありますか? leftValStr
とrightValStr
がoptionalsない場合でも
結果がnullの場合、強制アンラッピングを使用する必要がありますか? – Frankie
@Frankieいいえ、結果がnilで展開されていない場合は、コードがクラッシュします。 Appleのドキュメントのガイダンス、オプションで作業する方法、最初に参照してください。 – user3441734
これらの値は、** valid ** numbers only - 条件付きでyesですが、いくつかの値や他のシナリオを貼り付ける場合は、例えば 'if let'を使用して結果を確認する必要があります。そしてユニットテストを書くことを覚えておいてください。これは完璧なユースケースです。 – KlimczakM