美文网首页100 Days of SwiftUI
100 Days of SwiftUI - Day 3 运算符和

100 Days of SwiftUI - Day 3 运算符和

作者: 星星星宇 | 来源:发表于2020-09-14 10:54 被阅读0次

    1. Arithmetic Operators(算术运算符)

    Swift拥有大量的运算符号,像+ -

    let a = 1
    let b = 2
    let total = a + b
    

    为什么Swift无法将Double转为Int?

    Double Float Int有很多常用的表示数字的类型,如Double和Int,Double和Int占用了相同的内存来存储数字,Int只能存整数,而Double可以存小数点后的值。
    因此,将Double填加到Int是不安全的,Int会丢失小数。
    那么将Int转为Double呢???
    尽管Double使用相同的内存来存储Int,但是存储数据方式有点模糊,较小的数字有很高的的精度,但是较大数字时,精度越来越低,有些比较大的数字Double甚至无法保存。

    let value1: Double = 90000000000000001
    let value2: Int = 90000000000000001
    

    Swift会警告value1 不能完全存储,会变为90000000000000000。
    而value2不会,因为该数字可以准确存储,
    整数失去存储分数值的能力,却获得存储精确值的能力。

    即使你使用安全数字,Swift的设计也不允许意外情况的发生,所以Swift拒绝在各种数字类型间自动转换。

    函数-是否被均分

    let number = 465
    let isMultiple = number.isMultiple(of: 7)
    

    2.Operator overloading(运算符重载)

    Swift支持运算符重载。

    let fakers = "Fakers gonna "
    let action = fakers + "fake"
    

    +连接字符串。

    let firstHalf = ["John", "Paul"]
    let secondHalf = ["George", "Ringo"]
    let beatles = firstHalf + secondHalf
    

    +连接数组。
    Swift是类型安全语言,意味不会让你混合类型。
    Swift为什么需要运算符重载?

    Swift可以使用+来连接字符串等其它,但是这不代表在任何位置都可以使用运算符。

    你可以创建自己的自定义运算符,甚至可以修改现有的运算符。

    3.Compound assignment operators复合赋值运算符

    将运算符和赋值运算符结合在一起。

    var score = 95
    score -= 5
    

    4.Comparison operators 比较运算符

    == != < <=

    Swift5.3中的枚举比较运算

    enum Sizes: Comparable {
        case small
        case medium
        case large
    }
    
    let first = Sizes.small
    let second = Sizes.large
    print(first < second)
    

    5.Conditions条件

    if else eles if
    使用else 可以使代码更短,更易于阅读。

    6.Combining conditions条件判断

    &&和, ||或。

    在多条件检查时,尽量自己插入括号来表明我们的意思

    7.The ternary operator三元运算符

    三元运算符使我们在两个结果中选择,有些人依赖三元运算符,它使我们代码变短,有些人远离它,因为它更难阅读。
    为了代码更易阅读,尽可能不用三元运算符。

    8.Switch statementsSwitch语法

    多个条件时, 应该使用switch case,使用这种方法,你只需编写一次条件。

    通常Swift只会在一种情况下运行代码,fallthrough关键字可以继续执行下一种情况。

    switch weather {
    case "rain":
        print("Bring an umbrella")
    case "snow":
        print("Wrap up warm")
    case "sunny":
        print("Wear sunscreen")
        fallthrough
    default:
        print("Enjoy your day!")
    }
    

    什么时候应该使用switch而不是if?

    1.swift要求switch语句是详尽无遗的,这意味着必须case每个可能的值,或必须有一个default情况,if else 情况则并非如此。
    2.当使用switch检查多个结果时,该值仅读取一次,而if被读取多次,如果这时候使用函数调用,如果一些函数调用速度很慢,那这变得很重要。
    3.Switch允许使用高级模式匹配if。

    9.Range operators范围运算符

    ..<半开范围运算符,不包含最终值 ...封闭运算符包括最终值

    switch配合范围运算符很有用。

    let score = 85
    
    switch score {
    case 0..<50:
        print("You failed badly.")
    case 50..<85:
        print("You did OK.")
    default:
        print("You did great!")
    }
    

    单边范围运算

    let names = ["Piper", "Alex", "Suzanne", "Gloria"]
    print(names[1...])
    

    10.总结

    1.Swift具有算术和比较运算符。
    2.算术运算符有多种变体,+=-=等。
    3.可以使用ifelseelse if条件判断。
    4.Swift具有三元运算符,该运算符将校验与正确或错误的代码块结合。
    5.如果有多个条件,使用switch更容易。
    6.你可以使用范围运算..<...

    相关文章

      网友评论

        本文标题:100 Days of SwiftUI - Day 3 运算符和

        本文链接:https://www.haomeiwen.com/subject/oxnoektx.html