前言
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
时就可以访问对象的方法或者成员。 - 在一个后缀表达式的子表达式中,有一个可选表达式,那么只有最外层的表达式返回的才是一个可选值。
- 使用