基础运算符

Swift的大部分运算符和C及OC相同,也分一元二元多元的,这里只记录一些Swift特有的性质或写法。

赋值运算符( = )

在等号右边是一个有多个值的元组时,它的成员值可以分解并同时分别赋值给常量或者变量:

let (x, y) = (, )
// x is equal to 1, and y is equal to 2

和C、OC不同的是,赋值运算符本身并不返回值,因此如下写法是错误的:

if x = y {
    // this is not valid, because x = y does not return a value
}

这主要是为了防止其和相等运算符混淆。

取余运算符(%)

取余运算在有些语言中也被称为取模,不过在Swift中不能这样称,因为负数的时候,余数也是带符号的,比如 -9 % 4 = -1,并且,第二个操作数的符号是被忽略的,也就是说,

a % b 和 a % -b总是返回相同的值。

与C和OC中的取余运算符不同,Swift中的取余也可以用于浮点数:8 % 2.5 = 0.5

复合赋值运算符

比如a+=2意味着a=a+2,不过复合赋值运算符本身并不返回值,因此let b = a += 2 是错误的。

Nil合并运算符

nil合并运算符(a ?? b)在可选项a有值的时候展开a,如果a没有值,就返回b的值。a必须是一个optional值,并且b和a存储的值应该是统一类型。它的意思就是

(a != nil) ? a! : b  //这里第二个!是用来强制展开optional值的

nil合并运算符是一种优雅的写法,可读性也更高,并且,如果a有值,那么b将不会参与运算。

范围运算符

Swift有两个范围运算符,"..."和"..<",a...b表示从a到b并且包含a和b的范围,a..<b表示从a到b但不包含b的范围,此时如果a=b,则范围为空,当然,这两个都要求a不能大于b。

字符串和字符

Swift的字符串和字符语法很简单,也可以直接用+号连接多个字符串,并且Swift的字符串提供一种快速、符合Unicode编码的文本处理工具。

并且,字符串中可以插入常量、变量、字面量、表达式。

Swift的string类型和Foundation框架中的NSString是相同的,如果是基于Cocoa的Foundation框架开发,那么所有NSString的API都可以用在Swift的String上。

字符串字面量

字符串字面量是指用双引号包围起来的定义好的字符序列。比如:let someString = "Some string literal value”。此时编译器会降someString的类型设定为String,因为它是用一个字符串字面量被初始化的。

字符串字面量可以包含一些特殊转义符号:

\0 (null), \\ (反斜杠), \t (水平tab), \n (换行符), \r (回车), \" (双引号) and \' (单引号)

也可以包含直接的Unicode纯量字符(Unicode scalar),Unicode scalar是指在某个指定范围内的任意Unicode代码点,它代表一个Unicode字符。在字符串中包含Unicode scalar时,用u开头,加上大括号包围的代码点数字。

let wiseWords = "\"Imagination is more important than knowledge\" - Einstein"
// "Imagination is more important than knowledge" - Einstein
let dollarSign = "\u{24}"        // $,  Unicode scalar U+0024
let blackHeart = "\u{2665}"      // ♥,  Unicode scalar U+2665
let sparklingHeart = "\u{1F496}" // 												





											

Swift学习笔记五的更多相关文章

  1. 【swift学习笔记】二.页面转跳数据回传

    上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...

  2. C#可扩展编程之MEF学习笔记(五):MEF高级进阶

    好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...

  3. (转)Qt Model/View 学习笔记 (五)——View 类

    Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...

  4. java之jvm学习笔记五(实践写自己的类装载器)

    java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...

  5. Swift学习笔记(一)搭配环境以及代码运行成功

    原文:Swift学习笔记(一)搭配环境以及代码运行成功 1.Swift是啥? 百度去!度娘告诉你它是苹果最新推出的编程语言,比c,c++,objc要高效简单.能够开发ios,mac相关的app哦!是苹 ...

  6. Learning ROS for Robotics Programming Second Edition学习笔记(五) indigo computer vision

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  7. swift学习笔记5——其它部分(自动引用计数、错误处理、泛型...)

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  8. swift学习笔记4——扩展、协议

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  9. swift学习笔记3——类、结构体、枚举

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

随机推荐

  1. IoC模式(依赖、依赖倒置、依赖注入、控制反转)

    1.依赖 依赖就是有联系,有地方使用到它就是有依赖它,一个系统不可能完全避免依赖.如果你的一个类或者模块在项目中没有用到它,恭喜你,可以从项目中剔除它或者排除它了,因为没有一个地方会依赖它.下面看一个 ...

  2. 2015项目timeline

    1. app签到  http://h5.a.rongyi.com/html/app/sign/index.html (pc无效果.app端 20160105) 2.圣诞活动--砍价 http://h5 ...

  3. 怎样去除SVN中的某个版本之前的所有版本

    地狱门神 在某些时候,我们可能需要一个存放二进制文件的SVN库,用来保存每日构建的结果等.但是这种库会趋于越来越大,最后会占用很多磁盘空间.这时我们会想到能不能删掉某个版本之前的所有版本,以节省磁盘空 ...

  4. 使用loadrunner进行压力测试之----post请求

    1. 发送post请求时使用web_submit_data 如: web_submit_data("create",//事务名 "Action=http://bizhi. ...

  5. liunx 的 grep命令(转载)

    简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...

  6. flex容器属性(一)

    一,概念 flexible box ,意为"弹性布局",用来为盒状模型提供最大的灵活性. 块级布局更侧重于垂直方向,行内布局更侧重于水平方向,于此相对的,弹性盒子布局算法是方向无关 ...

  7. 【linux】VMware12.0安装

    问题1:安装虚拟机时出现The Microsoft Runtime DLL installer failed to complete 解决: 重新安装,安装失败时不要点击结束,在开始“运行”出输入%t ...

  8. Object Pascal 面向对象的特性

    2 面向对象的特性 在软件系统开发过程中,结构分析技术和结构设计技术具有很多优点,但同时也存在着许多难以克服的缺点.因为结构分析技术和结构设计技术是围绕着实现处理功能来构造系统的,而在系统维护和软件升 ...

  9. C# 标准查询表达式

    一.标准查询运算符 1.C#提供了标准查询运算符,例如我想选择专利一系列(pantents)中以年份19开头的专利,可以用如下语句: IEnumerable<Patent> pantent ...

  10. 如何快速掌握CSS(各种CSS工具)

    CSS中的大量属性难以记忆,通过组合多种CSS工具,可以快速学习常见样式,并提高设计效率.这里给大家推荐一些比较好的在线工具,通过所见即所得图形化界面设计样式,直接得到对应的CSS代码.相比臃肿的集成 ...