美文网首页ios专题
三、Swift3.0中let和var对比分析

三、Swift3.0中let和var对比分析

作者: ZhengYaWei | 来源:发表于2017-02-21 23:29 被阅读231次

    1、let用于定义常量, var用于定义变量

    2、变量或常量的类型会根据右侧的代码执行结果,推倒对应的类型,具体是什么类型可以通过 option+鼠标左击查看类型

    3、Swift中对类型要求异常严格。
    不同类型的数据,不允许直接运算。Swift不会做隐式转换,所有的类型确定,都要有程序员自己负责。

      let x = 10
      let y = 10.5
      //这里就是错误的
      //print(x+y)
      //正确的做法
      print(x + Int(y))
    

    4、类型转化
    OC中:(int)y ==>类型转换
    swift中Int() ===>结构体的构造函数 Int对应的是个结构体

    5、swift中不存在基本数据类型,都是结构体。如上面的Int(y)

    6、如果需要制定变量或常量的类型,也可以使用这样的形式:let x: Double = 12
    提示:在Swift开发中,极少直接使用指定类型,通常都是做自动推导。

    7、关于let和var的选择
    如果写一下代码会包如下警告Variable 'a' was never mutated; consider changing to 'let' constant,翻译过来是:a的值从来没有被更改,建议使用let。所以正确的做法是改为var a = 10

      //系统警告: Variable 'a' was never mutated; consider changing to 'let' constant
     //翻译:a的值从来没有被更改,建议使用let。就是这么智能
       var a = 10
      let b = 20
      print(a+b)
    

    这里使用let,因为这里仅仅修改的是v的属性,并没有修改v的指针地址,所以使用let最为合理。

      let v = UIView()
     //这里使用let,因为这里仅仅修改的是v的属性,并没有修改v的指针地址,所以使用let最为合理。
     v.backgroundColor = UIColor.red
    

    相关文章

      网友评论

        本文标题:三、Swift3.0中let和var对比分析

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