Swift 表达式
前言
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 表达式的更多相关文章
- Programiz 中文系列教程·翻译完成
原文:Programiz 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 学习资源 目录 Programiz C ...
- Swift中的Void类型与空元祖表达式
可能有不少Swift开发者会忽略这么一个细节:在Swift中,Void类型其实是一个别名类型,而其真正的类型为(),即一个空元祖(empty tuple)! 这种语言特性给Swift带来了一些比较方便 ...
- Swift 概述及Swift运算符和表达式
Swift 是用于设计 iOS 及 Mac OS X 应用的一门新 语言. Swift 特点 • Swift 保留了 C 与 Objective-C 的优点,并摒弃 其为了兼容 C 语言所 ...
- Swift使用闭包表达式
Swift中的闭包表达式很灵活,其标准语法格式如下:{ (参数列表) ->返回值类型 in 语句组}其中,参数列表与函数中的参数列表形式一样,返回值类型类似于函数中的返回值类型,但不同的是 ...
- Swift中的注释以及表达式
Swift程序有两类注释:单行注释(//)和多行注释(/*...*/).注释方法与C.C++和Objective-C语言都是类似的,下面详细介绍一下.1. 单行注释单行注释可以注释整行或者一行中的一部 ...
- Swift的闭包(一):闭包简介、闭包表达式的优化
定义:Closures are self-contained blocks of functionality that can be passed around and used in your co ...
- Swift 闭包表达式
闭包是功能性自包含模块,可以在代码中被传递和使用. Swift 中的闭包与 C 和 Objective-C 中的 blocks 以及其他一些编程语言中的 lambdas 比较相似. 闭包的形式主要有三 ...
- 《从零开始学Swift》学习笔记(Day 9)——离开表达式你试试!
原创文章,欢迎转载.转载请注明:关东升的博客 表达式啊是很重要地. 在Swift中,表达式有3种形式. 不指定数据类型 var a1 = 10 指定数据类型 var a1:Int = 10 使用分号 ...
- [Swift通天遁地]五、高级扩展-(14)扩展String快速计算字符串中的各种数学表达式
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
随机推荐
- Rainmeter 一部分 语法 中文教程
;Meter基本元素示例:;如果是[MeterStyle]表示Meter的公共Style,类似CSS的意义!!!;颜色可以使用网页的颜色定义方式,如半透明黄色:255.255.0.128=FFFF00 ...
- 循环插入oracle 存储过程
-- Create tablecreate table STUDENTS( name VARCHAR2(300), id NUMBER(11), city VARCHAR2(300), no VARC ...
- javascript基于原型的语言的特点
一.基于原型的语言的特点 1 只有对象,没有类;对象继承对象,而不是类继承类. 2 “原型对象”是基于原型语言的核心概念.原型对象是新对象的模板,它将自身的属性共享给新对象.一个对象不但可以享有自己 ...
- PLT redirection through shared object injection into a running process
PLT redirection through shared object injection into a running process
- 微软BI 之SSRS 系列 - 不显示 Pie Chart 饼图上 0% 的数据
SSRS 小技巧系列专门用来记录 SSRS 报表开发过程中常用的小技巧 - 效果图 - 0% 的标签数据不需要显示出来. 效果图 - 正常的效果. 解决方法 - 使用 IIF 条件判断,如果计算值为 ...
- 1049: 贝贝的车牌问题(car)
http://oj.lcsyzx.cn/JudgeOnline/problem.php?id=1049 var a : ]; m,n,t : integer; begin readln(m); n:= ...
- python知识合集
python安装包管理 http://www.cnblogs.com/wilber2013/p/4769467.html python pip安装源管理:pypi官网的源不太好,网速慢,容易造成包下 ...
- 运用BufferedWriter把数据写入文件
public class WriteReadFiles { private static Logger log = LoggerFactory.getLogger(WriteReadFiles.cla ...
- infobright系列二:数据迁移
安装之后把之前infobright的数据迁移到新安装的infobright上. 1:挺掉相关的服务 2:scp 把旧数据拷到新安装的infobright上 3:修改/etc/my-ib.cnf的数据目 ...
- Ant脚本简介与基础知识
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6624003.html 一:Ant是什么 Ant相当于Linux环境下的shell脚本,只不过是用xml文档来 ...