我遇到了一個簡單的計算器應用程序的這些代碼行。Unwrap不是可選的變量?
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在這裏沒有被聲明爲可選的,那麼爲什麼我們必須解開它們呢?
所以我應該使用強制解包時結果可以爲空? – Frankie
@Frankie不行,如果結果爲零並強制解包,你的代碼將崩潰。請參閱Apple文檔中的指導,首先介紹如何使用「可選」。 – user3441734
如果你100%確定這些值只會是有效的**數字 - 有條件的是,但如果你讓用戶粘貼一些值或任何其他場景 - 你應該使用例如if if來檢查結果。請記住寫一些單元測試,這是一個完美的用例。 – KlimczakM