zoukankan      html  css  js  c++  java
  • Swift(二)基础部分

    数据类型

    Swift 包含了 C 和 Objective-C 上所有基础数据类型。它还增加了 Objective-C 中没有的高阶数据类型比如元组(Tuple)

    1、基础类型

    • Int整形和UInt无符号整形
    • FloatDouble浮点型
    • Bool布尔型
    • Character字符型
    • String字符串类型

    2、集合类型

    • Array数组
    • Set集合
    • Dictionary字典

    3、高阶类型

    • Tuple元组

    声明常量和变量

    常量和变量必须在使用前进行声明,Swift中使用 let 声明常量,使用 var 声明变量

    类型标注

    当你声明常量或者变量的时候可以加上类型标注(type annotation),说明常量或者变量中要存储的值的类型。如果要添加类型标注,需要在常量或者变量名后面加上一个冒号和空格,然后加上类型名称。

    类型安全和类型推断

    Swift 是一个类型安全(type safe)的语言。类型安全的语言可以很清楚地知道代码要处理的值的类型。

    由于 Swift 是类型安全的,所以它会在编译你的代码时进行类型检查(type checks),并把不匹配的类型标记为错误。这可以让你在开发阶段就会发现并修复错误。当你要处理不同类型的值时,类型检查可以帮你避免错误。

    然而,在声明常量和变量的时候如果你没有显式指定类型,Swift 会使用类型推断(type inference)来选择合适的类型。有了类型推断,编译器可以在编译代码的时候自动推断出表达式的类型。原理很简单,只要检查你赋的值即可。

    因为有类型推断,和 C 或者 Objective-C 比起来 Swift 很少需要声明类型。常量和变量虽然需要明确类型,但是大部分工作并不需要你自己来完成。

    整数

    整数可以是有符号(正、负、零)或者 无符号(正、零)。Swift 提供了8,16,32和64位的有符号和无符号整数类型。可以访问不同整数类型的 min 和 max 属性来获取对应类型的最小值和最大值。一般来说,你不需要专门指定整数的长度。但是Swift 提供了特殊的整数类型Int和无符号整型UInt,它们的长度和当前平台的原生字长相同。

    注意:尽量不要使用UInt,除非你真的需要存储一个和当前平台原生字长相同的无符号整数。除了这种情况,最好使用Int,即使你要存储的值已知是非负的。统一使用Int可以提高代码的可复用性,避免不同类型数字之间的转换,并且匹配数字的类型推断

    浮点数

    浮点数是有小数部分的数字,浮点类型比整数类型表示的范围更大,可以存储比 Int 类型更大或者更小的数字。Swift 提供了两种有符号浮点数类型:

    • Double表示64位浮点数。当你需要存储很大或者很高精度的浮点数时请使用此类型。
    • Float表示32位浮点数。精度要求不高的话可以使用此类型。

    注意Double精确度很高,至少有15位数字,而Float只有6位数字。根据代码需要处理的值的范围来选择使用哪个类型,在两种类型都匹配的情况下,将优先选择 Double

    布尔值

    Swift 有一个基本的布尔(Boolean)类型,叫做Bool。布尔值指逻辑上的值,因为它们只能是真或者假。

    Swift 有两个布尔常量,true 和 false

    // 布尔值
    let trueResult = true
    let falseResult = false

    元组

    元组(tuples)把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型。

    可选类型

    在Swift中,可选类型是为了表达当一个变量值为空的情况。当一个值为空时,它就是nil。Swift中无论是值类型或者引用类型的变量,都可以是可选类型。

    可选绑定

    使用 可选绑定 来判断可选类型是否包含值,如果包含就把值赋给一个临时常量或者变量。可选绑定可以用在 if 和 while 语句中,这条语句不仅可以用来判断可选类型中是否有值,同时可以将可选类型中的值赋给一个常量或者变量。

    隐式解析可选类型

    如上所述,可选类型表明了常量或者变量可以“没有值”。可以通过if语句来判断是否有值,如果有值的话可以通过可选绑定来解析值。但是在项目中,当一个可选类型被第一次赋值后,可选类型肯定有值,那这个时候如果每次判断和解析值就会很低效。

    如此,我们可以将用作可选的类型的后面的问号 ? 改为感叹号 ! 来声明一个隐式解析可选类型。

  • 相关阅读:
    python pandas里面的一些函数及用法
    Python enumerate() 函数
    论文笔记:EPTD模型/ Efficient and Privacy-Preserving Truth Discovery in Mobile Crowd Sensing Systems
    论文笔记:Adversarial Attacks and Defenses in Deep Learning 对抗训练部分
    一周入门Linux 基础篇 虚拟机快照
    一周入门Linux 基础篇 虚拟机克隆
    一周入门Linux 基础篇 网络连接的三种方式
    一周入门Linux 基础篇 安装vm和Centos
    B站考研网课推荐
    关于我
  • 原文地址:https://www.cnblogs.com/wanli-leon/p/10991536.html
Copyright © 2011-2022 走看看