Привет, я начинаю, и я создаю калькулятор RPN. все мои операции выполняются в отдельном диспетчере просмотра, называемом calcengine. У меня есть некоторый код для AC и у меня есть два вопроса:Swift differentiate Clear (C) и All clear (AC)
@IBAction func AllClear(sender: UIButton) {
userHasStartedTyping = false
labelDisplay.text = "\(0)"
self.calcEngine!.operandStack.removeAll()
}
Вот код для расчетов в ViewController:
@IBAction func operation(sender: UIButton) {
let operation = sender.currentTitle!
if userHasStartedTyping {
Enter()
}
self.displayValue = (self.calcEngine?.operate(operation))!
Enter()
}
и код для расчетов в calcengine:
class CalculatorEngine: NSObject
{
var operandStack = Array<Double>() //array
func updateStackWithValue(value: Double)
{ self.operandStack.append(value) }
func operate(operation: String) ->Double
{ switch operation
{
case "×":
if operandStack.count >= 2 {
return self.operandStack.removeLast() * self.operandStack.removeLast()
}
case "÷":
if operandStack.count >= 2 {
return self.operandStack.removeFirst()/self.operandStack.removeLast()
}
case "+":
if operandStack.count >= 2 {
return self.operandStack.removeLast() + self.operandStack.removeLast()
}
case "−":
if operandStack.count >= 2 {
return self.operandStack.removeFirst() - self.operandStack.removeLast()
}
default:break
}
return 0.0
}
}
- Этот код имеет право на очистку всех выполненных вычислений.
- Как я могу отличить эту функцию от функции Clear и построить код для очистки?
1) Поскольку мы не знаем, как вы выполняете расчеты, мы не можем быть уверены. 2) Код зависит от того, какая разница. Этот вопрос, вероятно, слишком широк. – Abizern
@ Abizern Я только что редактировал вопрос :) если бы вы могли посмотреть .. большое спасибо – kepi