基本运算符

术语

运算符有一元、二元、三元运算符。
受运算符影响的值叫做操作数。

赋值运算符

let b = 10
var a = 5
a = b
// a现在等于10

如果赋值的右边是一个多元组,它的元素可以马上被分解多个常量或变量:

let (x,y) = (1,2)
// 现在x等于1,y等于2

与C语言和Objective-C不同,Swift的赋值操作并不返回任何值。所以以下代码是错误的:

if x = y {
    //此句错误,因为x = y并不返回任何值
}

算术运算符

1 + 2  //等于3
5 - 3  //等于2
2 * 3  //等于6
10.0 / 2.5   //等于4.0

加法运算符也可用于String的拼接:

"hello," + "world"  //等于 "hello,world"

求余运算符

9 % 4  //等于1
-9 % 4 //等于-1

浮点数求余计算

8 % 2.5   //等于0.5

自增和字减运算

var i = 0
++i //现在 i = 1
  • ++前置的时候,先自增再返回。
  • ++后置的时候,先返回再自增。
var a = 0
let b = ++a  //a 和 b 现在都是1
let c = a++  //a 现在是2,但 c 是 a 自增前的值1

一元负号运算符

let three = 3
let minusThree = -three //minusThree 等于 -3
let plusThree = -minusThree //plus等于3

一元正号运算符

let minusSix = -6
let alsoMinusSix = +minusSix //alsoMinusSix等于-6

组合赋值运算符

var a = 1
a += 2  //a现在是3

比较运算符

  • 等于 (a == b)
  • 不等于 (a != b)
  • 大于 (a > b)
  • 小于 (a < b)
  • 大于等于 (a >= b)
  • 小于等于 (a <= b)
    比较运算符多用于条件语句,如if条件:
let name = "world"
if name == "world" {
    println("hello,world")
} else {
    println("I'm sorry \(name),but I don't recognize you")
}
// 输出 "hello,world"

三目运算符

三目运算符是以下代码的缩写形式:

if question { answer1 } else { answer2 }

一个计算表格行高的例子:如果有表头,那行高应比内容高度高出50像素;如果没有表头,只需高出20像素。

let contentHeight = 40
let hasHeader = true
let rowHeight = contentHeight + (hasHeader ? 50 : 20)
// rowHeight现在是90

空合并运算符

空合并运算符(a ?? b)将对可选类型a进行空判断,如果a包含一个值就进行解封,否则就返回一个默认值b
这个运算符有两个条件:

  • 表达式a必须是可选类型
  • 默认值b的类型必须要和a存储值得类型保持一致
    空合并运算符是对以下代码的简短表达方法:
a != nil ? a! : b

区间运算符

闭区间运算符

闭区间运算符(a...b)定义一个包含从a到b的所有值得区间,b必须大于a。闭区间运算符在迭代一个区间的所有值时非常有用。

for index in 1...5 {
    println("\(index) * 5 = \(index * 5)")
}
//1 * 5 = 5
//2 * 5 = 10
//3 * 5 = 15
//4 * 5 = 50
//5 * 5 = 25

半开区间运算符

半开区间(a..<b)定义一个从a到b但不包括b的区间。

let names = ["Anna","Alex","Brian","Jack"]
let count = names.count
for i in 0..<count {
    println("第\(i + 1)个人叫\(names[i])")
}
//第1个人叫Anna
//第2个人叫Alex
//第3个人叫Brian
//第4个人叫Jack

逻辑运算符

逻辑运算的操作对象是逻辑布尔值。Swift支持三个标准逻辑运算。

  • 逻辑非(!a)
  • 逻辑与(a && b)
  • 逻辑或(a || b)

Swift教程二的更多相关文章

  1. ios – Swift 3 – 比较两个日期时使用&lt;运算符

    当比较两个日期时,我可以比较使用>但不是

  2. 二 Swift学习之基本运算符

    二Swift学习之基本运算符————–借鉴老码团队翻译组-Tyrion1.1术语运算符有一元、二元和三元运算符。三元运算符操作三个操作对象,和C语言一样,Swift只有一个三元运算符,就是三目运算符(a?这不同于上面提到的自增和自减运算符。无疑空合运算符(??由于userDefinedColorName是一个可选类型,我们可以使用空合运算符去判断其值。

  3. Swift算术运算符

    ==,返回值为true和false逻辑运算符:!,&,&&,|,||(短路或)位运算符:~,^,>>,

  4. Swift语法基础:12 - Swift的比较运算, 三目条件运算, 区间运算, 逻辑运算

    在上面的示例中,该运算符用于确定一个名为colorNametoUse的字符串变量的初始值。因为userDefinedColorName是零,表达userDefinedColorName??defaultColorName返回的值的defaultColorName,或”红色”。好了,这次我们就讲到这里,下次我们继续~~

  5. Swift教程10-运算符与C语言的不同

    =,==这些运算符和其他语言的类似,是比较前后两个值是否相等,或者大小关系比较字符串内容是否相等,使用==即可但是Swift新增了===恒等于,是针对于引用类型,如两个对象之间是否是同一个对象与之对应的是!运算符示例Swift新增的??

  6. Swift学习:10.运算符

    :b区间运算符:a...ba..Sword{returnSword}//重载前置运算符“-”prefixfunc-->Sword{returnSword}//重载后置运算符“++”postfixfunc++->Sword{varoldSword=Swordsword.length+=1.0sword.weight+=1.0returnoldSword}3.自定义运算符infixoperator+-*{associativityleftprecedence140}func+-*->{returnSword}

  7. Swift运算符

    Swift运算符1.赋值运算符“=”用于将一个变量,常量或表达式的值赋值给另一个变量。算术运算符“+”“-”“*”“/”“%”“++”“–”2.溢出运算符1.溢出加“&+”2.溢出减“&-”3.溢出乘“&*”4溢出除“&/”5溢出求余“&%”3.位运算符4.范围运算符本文内容来自《疯狂讲义》

  8. swift笔记-赋值运算符

    复杂些的运算例如逻辑与运算符&&,或让i值加1的便捷自增运算符++i等。Swift支持大部分标准C语言的运算符,且改进许多特性来减少常规编码错误。当然允许你使用Swift的溢出运算符来实现溢出。本章节只描述了Swift中的基本运算符,高级运算符包含了高级运算符,及如何自定义运算符,及如何进行自定义类型的运算符重载。三元运算符操作三个操作对象,和C语言一样,Swift只有一个三元运算符,就是三目运算符(a?

  9. swift 基础笔记二运算符

  10. swift入门第二章运算符、字符串

    运算符1.一元运算符1.负号运算符2.正号运算符3.b=a++相当于a先赋值,再完成自增运算。后面的值)3.三元运算符形式结构:a>b?

随机推荐

  1. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  2. swift UISlider,UIStepper

    我们用两个label来显示slider和stepper的值.再用张图片来显示改变stepper值的效果.首先,这三个控件需要全局变量声明如下然后,我们对所有的控件做个简单的布局:最后,当slider的值改变时,我们用一个label来显示值的变化,同样,用另一个label来显示stepper值的变化,并改变图片的大小:实现效果如下:

  3. preferredFontForTextStyle字体设置之更改

    即:

  4. Swift没有异常处理,遇到功能性错误怎么办?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. 字典实战和UIKit初探

    ios中数组和字典的应用Applicationschedule类别子项类别名称优先级数据包contactsentertainment接触UIKit学习用Swift调用CocoaTouchimportUIKitletcolors=[]varbackView=UIView(frame:CGRectMake(0.0,0.0,320.0,CGFloat(colors.count*50)))backView

  6. swift语言IOS8开发战记21 Core Data2

    上一话中我们简单地介绍了一些coredata的基本知识,这一话我们通过编程来实现coredata的使用。还记得我们在coredata中定义的那个Model么,上面这段代码会加载这个Model。定义完方法之后,我们对coredata的准备都已经完成了。最后强调一点,coredata并不是数据库,它只是一个框架,协助我们进行数据库操作,它并不关心我们把数据存到哪里。

  7. swift语言IOS8开发战记22 Core Data3

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc,不然后面会报错,我也不知道为什么。

  8. swift实战小程序1天气预报

    在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。然后在btnpressed方法中依旧增加loadWeather方法.在loadWeather方法中加上信息的显示语句:运行一下看看效果,如图:虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

  9. 【iOS学习01】swift ? and !  的学习

    如果不初始化就会报错。

  10. swift语言IOS8开发战记23 Core Data4

    接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:关键字@NSManaged的作用是与实体中对应的属性通信,BinaryData对应的类型是NSData,CoreData没有布尔属性,只能用0和1来区分。进行如下操作,输入类名:建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。

返回
顶部