美文网首页
常量和变量

常量和变量

作者: Latte_Bear | 来源:发表于2017-10-18 15:52 被阅读0次

常量

  • 关键字:let
  • 特点:定义之后不能修改

变量

  • 关键字:var
  • 特点:定义之后可以修改

注意点

  • Swift中所有定义常量和变量的方法默认都使用自动推导,也就是说不需要程序员去定义具体类型(如果程序要求必须定义具体类型的话写法为:let / var : 具体数据类型 = 值);
  • 如果定义的是小数型变量或者常量,默认类型为Double
  • Swift不会做默认的隐式转换,任何不同类型之间不允许直接运算所以它对类型要求异常严格,所有的类型确定都由程序员负责;
    let a = 10
    let b = 20.5
    let c = a + b
    
    以上这样的代码是编译不过的,会报错,报错原因为Binary operator '+' cannot be applied to operands of type 'Int' and 'Double',必须做强制转换。
    let a = 10
    let b = 20.5
    let c = a + Int(b)
    
    强转类型的代码表现形式与Objective-C也不一样,Objective-C的写法为(int)b
  • 在 Swift 中不存在基本数据类型,都是结构体;
  • let定义的常量只能赋值一次,初始化后的常量不可以更改。

关于varlet的选择

func demo() {
  var a = 10
  let b = 20
  print(a + b)
}

以上代码可以正常编译运行,但Xcode会弹出警告提示用户Variable 'a' was never mutated; consider changing to 'let' constant.大概意思是说:变量 ‘a’ 从来没有被改变,建议将 var 修改为 let
通过代码警告可以得出,任何不需要后期做改动的值都建议定义为let,这样确保了值的安全,不会出现被无故修改的风险,一般正常开发中都会定义成let,如果后期需要做修改的时候再更改为var

总结

  • let定义常量,一经赋值不允许修改;
  • var定义变量,赋值之后仍可以修改;
  • 开发中优先使用 let,必要修改的时候再进行修改;
  • 定义类的属性必须使用 var;
  • Swift任何时候都不会做隐式转换,必须清楚自己定义的所有属性的类型信息;

相关文章

  • Swift 2.0 学习笔记 1_基础部分

    //: 基础部分 //: 常量和变量 //: 声明常量和变量 // let: 常量 var: 变量 let max...

  • 转战Kotlin-变量

    常量和变量1.常量和变量常量:赋值后不可改变 val变量:赋值后可以改变 var 声明变量

  • Swift-基础(常量,变量)

    常量、变量 声明变量和常量 常量和变量必须在使用前声明。 您使用let关键字声明常量,使用var关键字声明变量。 ...

  • Swift初体验 变量&常量&元组

    一、变量和常量01 变量和常量的定义在swift中变量使用var来修饰,常量使用let来修饰,变量可以修改而常量不...

  • Swift4.2基础学习笔记(一)

    参考资料与链接https://www.cnswift.org 常量和变量 声明常量和变量 类型标注 命名常量和变量...

  • swift 基础语法(常量、变量、数值、布尔型、元组)

    常量和变量 声明常量和变量 常量和变量必须在使用之前声明使用let关键字声明常量使用var关键字声明变量 可以在一...

  • iOS开发之C语言实用概述

    一、常量和变量:常量的定义:const int a = 10; 常量:整型常量实型常量字符型常量字符串常量 变量:...

  • 1、Swift基础部分

    常量和变量 声明常量和变量 用 let来声明常量,用 var来声明变量 可以在一行中声明多个常量或者多个变量,用逗...

  • swift语法--01常量和变量

    swift语法--常量和变量 常量&变量 let 常量: 常量的值一旦设定就不能改变 var 变量: 变量的值可以...

  • Swift常量&变量

    Playground是什么? Swift最基本的语法变化 什么是常量和变量 常量和变量的基本使用 常量和变量的使用...

网友评论

      本文标题:常量和变量

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