Swift 4.0

作者: CDLOG | 来源:发表于2019-01-07 13:51 被阅读46次

    类型安全和类型推断

      Swift 是一个类型安全(type safe)的语言。类型安全的语言可以让你清楚地知道代码要处理的值的类型。如果你的代码需要一个String,你绝对不可能不小心传进去一个Int。如果你没有显式指定类型,Swift 会使用类型推断(type inference)来选择合适的类型。有了类型推断,编译器可以在编译代码的时候自动推断出表达式的类型。原理很简单,只要检查你赋的值即可

    简单值

      常量和变量必须在使用前声明,用 let 来声明常量,用 var 来声明变量.
      当你声明常量或者变量的时候可以加上类型标注(type annotation),说明常量或者变量中要存储的值的类型。如果要添加类型标注,需要在常量或者变量名后面加上一个冒号和空格,然后加上类型名称。一般来说,当没有初始值时,才需要类型标注。
      一旦你将常量或者变量声明为确定的类型,你就不能使用相同的名字再次进行声明,或者改变其存储的值的类型。同时,你也不能将常量与变量进行互转。
    SomeType(ofInitialValue) 是调用 Swift 构造器并传入一个初始值的默认方法,用于进行类型的显示转换。

    var myVariable = 42 //变量
    myVariable = 50
    let myConstant = 42 //常量
    let explicitDouble: Double = 70 //类型标注
    String(explicitDouble)//显示转换
    print("变量转换为字符串\(explicitDouble)")
    

    数值型字面量

    一个十进制数,没有前缀
    一个二进制数,前缀是0b
    一个八进制数,前缀是0o
    一个十六进制数,前缀是0x
    1.25e2 表示 1.25 × 10^2,等于 125.0。
    1.25e-2 表示 1.25 × 10^-2,等于 0.0125。
    0xFp2 表示 15 × 2^2,等于 60.0。
    0xFp-2 表示 15 × 2^-2,等于 3.75。

    类型别名

    类型别名(type aliases)就是给现有类型定义另一个名字。你可以使用typealias关键字来定义类型别名。类似宏替换。

    typealias AudioSample = UInt16
    

    布尔值Bool

    let orangesAreOrange = true
    let turnipsAreDelicious = false
    

    元组

    元组(tuples)把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型。作为函数返回值时,元组非常有用.元组在临时组织值的时候很有用,但是并不适合创建复杂的数据结构。如果你的数据结构并不是临时使用,请使用类或者结构体而不是元组。

    //初始化元组
    let http404Error = (404, "Not Found")
    //将一个元组的内容分解(decompose)成单独的常量和变量
    let (statusCode, statusMessage) = http404Error
    print("The status code is \(statusCode)")
    // 输出 "The status code is 404"
    print("The status message is \(statusMessage)")
    // 输出 "The status message is Not Found"
    
    //在定义元组的时候给单个元素命名
    let http200Status = (statusCode: 200, description: "OK")
    //给元组中的元素命名后,你可以通过名字来获取这些元素的值
    print("The status code is \(http200Status.statusCode)")
    // 输出 "The status code is 200"
    print("The status message is \(http200Status.description)")
    // 输出 "The status message is OK"
    
    //如果你只需要一部分元组值,分解的时候可以把要忽略的部分用下划线(_)标记
    let (justTheStatusCode, _) = http404Error
    print("The status code is \(justTheStatusCode)")
    // 输出 "The status code is 404"
    
    //还可以通过下标来访问元组中的单个元素,下标从零开始
    print("The status code is \(http404Error.0)")
    // 输出 "The status code is 404"
    print("The status message is \(http404Error.1)")
    // 输出 "The status message is Not Found"
    

    相关文章

      网友评论

          本文标题:Swift 4.0

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