import UIKit
class ViewController: UIViewController {
@IBOutlet weak var display: UILabel!
var inMid = false
@IBAction func appendDigit(sender: UIButton) {
let digit = sender.currentTitle!
if inMid{
display.text = display.text! + digit
}else{
display.text = digit
inMid = true
}
}
var operandStack = Array<Double>()
@IBAction func enter() {
inMid = false
operandStack.append(displayValue)
println("operandStack = \(operandStack)")
}
var displayValue:Double{
get {
return NSNumberFormatter().numberFromString(display.text!)!.doubleValue
}
set{
display.text = "\(newValue)"
}
}
}
Это часть кода, используемого в последнем курсе Standford IOS 8 с использованием swift для создания калькулятора (адрес Youtube: https://www.youtube.com/watch?v=QLJtT7eSykg)
Каждый раз, когда я вызываю enter() (нажимаю Enter), в стеке должен сохраняться новый номер. Например: "8, введите()" --> {8}, "16, введите()" --> {8,16}.
Я запутался в вычисляемом свойстве displayValue. Для "newValue" ничего не назначено. Если есть что-то вроде «displayValue = 8», то я знаю, что «newValue» равно 8, и все это имеет смысл. Но такого нет.
Почему он все еще работает?
(Я имею в виду не само имя «newValue», я знаю, что Swift использует его по умолчанию, вместо этого меня смущает отсутствие присвоенного значения)