Swift 基础_01
发布时间:2020-12-14 07:06:03 所属栏目:百科 来源:网络整理
导读://// 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! // 用户
// // ViewController.swift // SimpleCalculator // // Created by ChenQianPing on 16/4/10. // Copyright ? 2016年 ChenQianPing. All rights reserved. // import UIKit class 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() } // 除数是栈中的最后一个元素,而除数是栈中最先弹出的元素 switch operation { case "×": performOperation { $0 * $1} case "÷": performOperation { $1 / $0} case "+": performOperation { $0 + $1} case "?": performOperation { $1 - $0} case "√": performOperation { sqrt($0)} 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 } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – 由于服务器拒绝连接,无法部署到Heroku
- 正则表达式 – 在grep中将一行与文字星号“*”匹配
- Ruby-on-Rails:ActiveAdmin SuperClass Mismatch TypeErro
- vue 解决addRoutes动态添加路由后刷新失效问题
- Oracle inner/outer/nature join
- C++运行时获取类型信息的type_info类与bad_typeid异常
- 当我必须在Swift中的类,结构和枚举之间选择时,我应该如何解
- C语言isspace()函数:判断一个字符是否是空白符
- c# – 将Word应用程序带到前面
- C堆栈分配的对象分配和析构函数调用