小知识点

2019-11-14  本文已影响0人  纳兰沫

判断是否是小数

    let x = 4.2
   //floor 向下取整 判断是否相等 如果相等 就不是小数
    if floor(Double(x)) == Double(x) {
            
    }

优化代码的方式

1.使用计算属性来代替方法 以后其他的逻辑可在set get里面实现
       let x: String? = "8"
        var displayValue: Double{
            get {
                guard let num = Double(x!) else {
                    fatalError("不能解包为数字")
                }
                return num
            }
            set {
                print(newValue)
            }
        }

对于方法来说,如果你需要返回值,而if判断没有else的时候 那么你的返回值可以是可选类型,同时return nil即可
元祖比字典更好的是 可以存放不同类型的数据

struct Calc {
    
    private var temp: (num1: Double, oper: String)?
    
    mutating func cacl(_ operate: String,_ displayValue: Double) -> Double?{
        
        if operate == "=="{
            if let num1 = temp?.num1,
                let oper = temp?.oper {
                
                switch oper{
                case "+":
                    return num1 + displayValue
                case "-":
                    return num1 - displayValue
                case "*":
                    return num1 * displayValue
                case "/":
                    return num1 / displayValue
                default:
                    return nil
                }
            }
        }else{
            temp = (num1: displayValue, oper: operate)
        }
        return nil
    }
}
上一篇下一篇

猜你喜欢

热点阅读