前端之家收集整理的这篇文章主要介绍了
Swift 基础_01,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
//
// 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
}
}
}
原文链接:https://www.f2er.com/swift/324114.html