//// VIEwController.swift// SimpleCalculator//// Created by ChenQianPing on 16/4/10.// copyright © 2016年 ChenQianPing. All rights reserved.//import UIKitclass VIEwController: UIVIEwController{ @IBOutlet weak var display: UILabel! // 用户是不是已经输入 var userIsInTheMIDdleOfTyPingANumber:Bool = false @IBAction func appendDigit(sender: UIbutton) { // Swift是非常强类型的语言 // Swift有一个非常强大的特性,叫做类型推导 let digit = sender.currentTitle! if userIsInTheMIDdleOfTyPingANumber{ // 可选值(Optional)是不可以拼接字符串的,所以在这个地方,需要进行解包 display.text = display.text! + digit } else{ display.text = digit userIsInTheMIDdleOfTyPingANumber = true } print("digit = \(digit)") } @IBAction func operate(sender: UIbutton) { let operation = sender.currentTitle! if userIsInTheMIDdleOfTyPingANumber { enter() } // 除数是栈中的最后一个元素,而除数是栈中最先d出的元素 switch operation { case "×": performOperation { * } case "÷": performOperation { / } case "+": performOperation { + } case "−": performOperation { - } case "√": performOperation { sqrt()} default:break } } // 函数的参数是一个函数 func performOperation(operation:(Double,Double) -> Double){ if operandStack.count >= 2{ displayValue = operation(operandStack.removeLast(),operandStack.removeLast()) enter() } } // 一个名字下的两个不同功能的函数,swift会自动识别应该用哪个函数的 private func performOperation(operation:Double -> Double){ if operandStack.count >= 1{ displayValue = operation(operandStack.removeLast()) enter() } } // 这个变量是一个内部的栈,去存储你输入的这些数,他的类型是一个数组,这个数组里存放的是Double的变量,注意在这个地方要初始化.(我们不能使用没有经过初始化的,会报错) // var operandStack: Array<Double> = Array<Double>() var operandStack = Array<Double>() @IBAction func enter() { userIsInTheMIDdleOfTyPingANumber = false operandStack.append(displayValue) print("operandStack = \(operandStack)") } var displayValue:Double{ get{ return NSNumberFormatter().numberFromString(display.text!)!.doubleValue } set{ display.text = "\(newValue)" userIsInTheMIDdleOfTyPingANumber = false } } }总结
以上是内存溢出为你收集整理的Swift 基础_01全部内容,希望文章能够帮你解决Swift 基础_01所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)