if buttonText == "=" {
let result = calculate(expression: currentText)
}
로 작성을 하면 오류가 발생
func calculate(expression: String) -> Int? {
let expression = NSExpression(format: expression)
if let result = expression.expressionValue(with: nil, context: nil) as? Int {
return result
} else {
return nil
}
}
label.text는 String? 타입
calculate(expression:) 함수는 Int?타입을 반환
Int? 값을 String?에 바로 할당할 수 없음
result를 String으로 타입 변환 해야함
Optional Binding (if let) 사용
if buttonText == "=" {
if let result = calculate(expression: currentText) {
label.text = String(result) // Int → String 변환
} else {
label.text = "Error" // 계산 실패 시 기본값
}
return
}
로 다시 작성