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)"
}
}
}
これは、Swift を使用して電卓を作成する最新の Standford IOS 8 コースで使用されるコードの一部です (Youtube アドレス: https://www.youtube.com/watch?v=QLJtT7eSykg )
enter() を呼び出す (Enter キーを押す) たびに、新しい番号がスタックに保存されるはずです。例: "8, enter()" --> {8}, "16, enter()" --> {8,16}.
ここで計算されたプロパティ「displayValue」について混乱しました。「newValue」には何も割り当てられていません。「displayValue = 8」のようなものがある場合、「newValue」が 8 であることがわかり、すべて意味があります。しかし、そんなことはありません。
なぜまだ機能するのですか?
(私が意味するのは、「newValue」という名前自体ではありません。Swift のデフォルト設定であることはわかっています。代わりに、割り当てられた値の欠落が私を混乱させるものです)