判断是否是小数
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
}
}
网友评论