前言

  • Swift 语言使用表达式来表示程序中的最小单位,通常一个表达式是由数字、字符、运算符、变量、常量、函数调用等可以求得值的有意义的排列组成的组合。

  • 根据组合方式的不同,表达式可以分为基本表达式、多元表达式、前缀表达式、后缀表达式。

1、基本表达式

  • 1)self 表达式

    • 用于对当前类型或者类型实例自身进行引用,从而访问其内部成员。

      self.menberFunc
  • 2)super 表达式

    • 超类表达式,也可以理解为父类,用于访问当前类或者实例的父类成员或者方法。

      super.menber
  • 3)隐式成员表达式

    • 用于在可以推断出类型的上下文中引用这个类型的成员。

      var poNum = SomType.max
      poNum = .min
  • 4)圆括号表达式

    • 用于划分运算符优先级和创建元组,通常由一对圆括号和若干个自表达式和逗号共同构成。

      (表达式1, lab2:表达式2, lab3:表达式3, ...)
  • 5)通配符表达式

    • 主要使用符号 _ 来忽略表达式中的某个参数,这和正则表达式的通配符的概念是不同的。

      (a, _) = (1, 2)

2、前缀表达式

  • 1)函数调用表达式

    • 通常由函数名加上参数列表组成。

      FuncName(value1, lab2:value2)
  • 2)初始化函数表达式

    • 即某个类型用于初始化其实例的函数表达式。

      SomeClass.init
  • 3)显式成员表达式

    • 是显式的访问类型、元组或者其他模块成员变量的一种方式。

      var cat:Tanimal()
      var iFoots = cat.hasfoot

3、后缀表达式

  • 1)后缀 self 表达式

    • 通常有两种形式的后缀表达式。

      • 表达式.self:这种形式的表达式返回表达式的自身的值。
      • 类型实例.self:这种形式的表达式返回当前实例所属的类型,通常用于需要动态获取实例类型的场景中。
  • 2)动态类型表达式

    • 专门用于动态获取类型的表达式。

      • 标准形式是:表达式.dynamicType ,其中表达式不能为类型名称。
      • 可以通过使用 .dynamicType 获得当前实例对象所属的类型,并访问其类方法。
  • 3)附属脚本表达式

    • 可以通过附属脚本表达式访问 getter/setter 的方法,他的基本形式是:表达式1 [index 表达式2]
  • 4)强制取值表达式

    • 使用 ! 来强制获取某个不为 nil 的可选表达式的值。
  • 5)可选链表达式

    • 使用 ? 来声明一个可选类型变量或者对象,当对象不为 nil 时就可以访问对象的方法或者成员。
    • 在一个后缀表达式的子表达式中,有一个可选表达式,那么只有最外层的表达式返回的才是一个可选值。

Swift 表达式的更多相关文章

  1. Programiz 中文系列教程·翻译完成

    原文:Programiz 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 学习资源 目录 Programiz C ...

  2. Swift中的Void类型与空元祖表达式

    可能有不少Swift开发者会忽略这么一个细节:在Swift中,Void类型其实是一个别名类型,而其真正的类型为(),即一个空元祖(empty tuple)! 这种语言特性给Swift带来了一些比较方便 ...

  3. Swift 概述及Swift运算符和表达式

    Swift  是用于设计 iOS 及 Mac OS X 应用的一门新 语言. Swift 特点 •   Swift  保留了 C  与 Objective-C 的优点,并摒弃 其为了兼容 C  语言所 ...

  4. Swift使用闭包表达式

    Swift中的闭包表达式很灵活,其标准语法格式如下:{ (参数列表) ->返回值类型 in    语句组}其中,参数列表与函数中的参数列表形式一样,返回值类型类似于函数中的返回值类型,但不同的是 ...

  5. Swift中的注释以及表达式

    Swift程序有两类注释:单行注释(//)和多行注释(/*...*/).注释方法与C.C++和Objective-C语言都是类似的,下面详细介绍一下.1. 单行注释单行注释可以注释整行或者一行中的一部 ...

  6. Swift的闭包(一):闭包简介、闭包表达式的优化

    定义:Closures are self-contained blocks of functionality that can be passed around and used in your co ...

  7. Swift 闭包表达式

    闭包是功能性自包含模块,可以在代码中被传递和使用. Swift 中的闭包与 C 和 Objective-C 中的 blocks 以及其他一些编程语言中的 lambdas 比较相似. 闭包的形式主要有三 ...

  8. 《从零开始学Swift》学习笔记(Day 9)——离开表达式你试试!

    原创文章,欢迎转载.转载请注明:关东升的博客 表达式啊是很重要地. 在Swift中,表达式有3种形式. 不指定数据类型 var a1 = 10 指定数据类型 var a1:Int  = 10 使用分号 ...

  9. [Swift通天遁地]五、高级扩展-(14)扩展String快速计算字符串中的各种数学表达式

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

随机推荐

  1. FireDAC中的SQLite(二)

    我们接下来将要使用FDDemo.sdb数据库进行访问,开始我们的第一个SQLite访问例子. 我们的FDDemo.sdb存放目录在:C:\Program Files (x86)\Embarcadero ...

  2. 关于Linux路由表的route命令

    转自:http://www.cnblogs.com/gunl/archive/2010/09/14/1826234.html 查看 Linux 内核路由表 使用下面的 route 命令可以查看 Lin ...

  3. angular.element()的用法

    1.引用jQuery的前提下,和$用法基本相同:angular.element('#').html() 例如: angular.element('#test').html() angular.elem ...

  4. ArcEngine中COM对象与其基础RCW分开后就不能再使用

    操作ArcEngine中的COM对象时,为了减少内存的增长,用掉的对象要手动释放常用的方法是ReleaseComObject System.Runtime.InteropServices.Marsha ...

  5. 微软BI 之SSAS 系列 - 实现Cube 以及角色扮演维度,度量值格式化和计算成员的创建

    在熟悉完下面这三种维度的创建方式之后,就可以开始创建我们的第一个 Cube 了. SSAS 系列 - 自定义的日期维度设计 SSAS 系列 - 基于雪花模型的维度设计 SSAS系列 - 关于父子维度的 ...

  6. j2ee数据库连接池配置大全

    <!--web.xml begin--> <!--web.xml Spring ApplicationContext配置文件的路径 ,可使用通配符,多个路径用,号分隔 --> ...

  7. H5 新增内容 新增属性

    1.视频 video 2.音频 audio 3.拖放 Drag 和 drop 4.画布 canvas 5.SVG 6.地理定位 navigator.geolocation.getCurrentPosi ...

  8. python之tcp自动重连

    操作系统: CentOS 6.9_x64 python语言版本: 2.7.13 问题描述 现有一个tcp客户端程序,需定期从服务器取数据,但由于种种原因(网络不稳定等)需要自动重连. 测试服务器示例代 ...

  9. 来自Unix/Linux的编程启发录

    本篇文章已授权微信公众号 guolin_blog (郭霖)独家公布重点内容 2017年第一篇文章,祝各位好友新年快乐. 年前因为不小心坐到了自己左手大拇指导致轻微的骨裂,没有按时更新,实在是羞愧.今年 ...

  10. Android 使用DDMS查看内存使用情况