在Swift当中当然是有与或非这三个逻辑运算符,并且兼容大部分C类运算符,比如 “<”,“>”,“=”,“==”,“<=”,“>=”,“+”,“-“,“*”,“/”,这些等等都支持,但这里有一点要注意一下,赋值符号 “=” 不返回值,以防止把 “==” 写成 “=” 导致程序出错.

区别于C,Swfit还提供对浮点数类型进行取余预算 “%”,还提供了C没有提供的区间,“0..<20” 或者 “0…20”.

1.术语

运算符分为三种,一目,二目,三目这三种运算符,例子:

一目运算符只对单个对象进行操作,比如: -a

二目运算符对两个对象进行操作,比如: a + b

三目运算符操作三个对象,和C一样,Swift也是只有一个三目运算符,比如 a? b :c.

2.赋值运算符

所谓的赋值运算符,就是把一个值赋给另一个值,比如:

let b = 10
var a = 5
a = b
println(a) // 打印出来的结果: 10

这个就是赋值运算啦.

如果在元组上赋值,那么情况就会不一样,比如:

let(x,y)=(1,2)
println("\(x),\(y)")
// 打印出来的结果: 1,2

PS: 如果是在元组上赋值,那么会产生多个变量或者常量,而这个值和变量都是相互对应的.

注意一下,如果在 if 语法中使用赋值运算是会错误的,比如:

if x = y {

}
// 报错: Connot assign to 'let' value 'x'

在Swift中它可以从底层里规避一些赋值运算的错误.

3.数值运算

在Swift中同样是有 “+”,比如:

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

在Swift中有一个很有趣的东西,在我们拼接字符串的时候,我们不需要再像OC那样定义一大串东西,而是直接就可以加上去,比如:

let helloWorld = "hello" + " world"
// 打印出来的结果: hello world

4.求余运算

所谓的求余运算就是两个数相除,如果除不尽,那么就取该余数,比如:

let a = 9 % 4
println(a) // 打印出来的结果: 1

例子里面的 9 除以 4 等于 2,但是除不完,余 1,这个就是我们所得到的结果,就是 1.

如果是负数求余,同样也是如此,不过结果是为负数,比如:

let a = -9 % 4
println(a) // 打印出来的结果: -1

还有一个浮点数求余:

let a = 8 % 2.5
println(a) // 打印出来的结果是: 0.5

PS: 浮点数求余运算比较特殊一点,他会精确到小数点后面的数,与整数求余不一样.

5.自增和自增运算

在Swift中也有自增和自增运算,原理和OC中差别不大:

当 ++ 前置的时候,先自増再返回.
当 ++ 后置的时候,先返回再自增.

var a = 0
let b = ++a
// 这个是先加了再返回,所以a和b都是1
let c = a++
// 这个是先返回后再加,所以a是2,c是1

补充一点:
在Swift中也可以拿 ‘-’ 或者 ‘+’ 作为数字的前缀,从而判断是正数还是负数:

let three = 3
let minusThree = -three
// 这里的minusThree就是-3,
let plusThree = -minusThree
// 这里的plusThree是3,运算结果和我们以前学的数学没区别,负负得正,-(-minusThree)

单目正号 ‘+’ 就和我们之前所认识的差不多:

let miunsSix = -6
let aolsMiunsSix = +miunsSix
// 这么做是改变不了miunsSix的正负的,和我们之前所学的数学没啥区别 +(-miunsSix)

6.复合赋值

在Swfit中也存在复合赋值:

var a = 1
a += 2
// a等于3,其运算过程就是 a = a + 2

PS: 在Swift中的复合赋值是不存在返回值的,所以let a = b += 2这种写法是不对的.

好了,这次我们就讲到这里,下次我们继续

Swift语法基础:11 - Swift的运算术语, 赋值运算, 数值运算, 复合赋值的更多相关文章

  1. iOS &gt;&gt;块&gt;&gt;更改块外部的变量值

    我不是在处理一个Object并改变它,就像我的mString一样.我希望’center’属性的行为类似于myInt,因为它是直接访问的C结构,而不是指向对象的指针.我希望’backgroundColor’的行为类似于我的imstring,因为它是一个指向一个新对象的对象的指针,不是吗?

  2. xcode – Interface Builder的用户定义的运行时属性不接受浮点数?

    我创建了一个具有float属性的NSView子类,我想在InterfaceBuilder中设置它.在用户定义的运行时属性部分中,唯一合适的类型是数字.但是,如果我想输入一个十进制数,它只是舍入到最接近的整数.这是一个bug还是故意的?解决方法使用字符串类型并输入您的值

  3. 寒城攻略:Listo 教你 25 天学会 Swift 语言 - 05 Strings and Characters

    Swift所代表的字符串是字符串类型,进而代表字符类型的值的集合//Swift的String和Character类型提供了一个快速的,兼容Unicode的方式来处理代码中的文本信息。每一个字符值代表一个Unicode字符,我们可以利用for-in循环来遍历字符串中的每一个字符println}//定义一个字符常量letyenSign:Character="$"printlncharacters")//使用"countElements()"函数来获取字符串的长度//8.ConcatenatingStrings

  4. swift 部分运算符

    下面的语句是无效的:ifx=y{println("这一特征可以防止使用相等的运算符(==)时,不小心使用赋值运算符(=)。通过使ifx=y无效,Swift可以帮助你避免代码中出现这些类型的错误")}2.swift中字符串的追加可以使用加法运算leth="hello,"letw="world"println(h+w)//输出hello,world3.范围运算符:闭区间运算符:表示[a,b]例如:forindexin1...5{println//输出1,2,3,4,5}半开区间运算符:表示[a,b)例如for

  5. 一 Swift学习之基础部分

    **一Swift学习之基础部分————–借鉴老码团队翻译组-Tyrion**//1.1常量和变量letsum=0//声明常量,值不可修改varnumber=1//声明变量,值可修改varx=0.0,y=1.0,z=2.0//在一行声明多个常量或变量用逗号隔开//1.2类型标注//声明常量或变量时可以加上类型标注,表示这个常量或变量存储的类型,但是如果你没有添加类型,而是赋了初始值,swift会自己推断类型letnum:Int=0varstr:String?Swift提供了两种有符号浮点数类型:Double

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

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

  7. Swift语法基础:8 - Swift的常量, 变量, 标注, 命名, 输出, 注释, 分号, 整数, 浮点数, 类型安全和类型推测说明

    Swift是一门新的语言,由于前期稳定性不够,所以导致会有一定的语法差异,有些人看到中文翻译过来的文档,和在Xcode里实现的不一样,就会各种找答案,找问题,我之所以会把我学习Swift遇到的问题共享出来,一方面是为了方便某人不愿意查看英文文档的朋友,另一方面就是为了给我自己做总结,是我在Xcode中一一试过,没有出现问题的我才会发出来,以后也会如此,直到Swift完全成熟稳定了,那我就以最后一个

  8. Swift算术运算符

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

  9. Swift语法基础:11 - Swift的运算术语, 赋值运算, 数值运算, 复合赋值

    在Swift当中当然是有与或非这三个逻辑运算符,并且兼容大部分C类运算符,比如“”,“=”,“==”,“=”,“+”,“-“,“*”,“/”,这些等等都支持,但这里有一点要注意一下,赋值符号“=”不返回值,以防止把“==”写成“=”导致程序出错.区别于C,Swfit还提供对浮点数类型进行取余预算“%”,还提供了C没有提供的区间,“0..

  10. Swift可选类型和可选链

    ),允许接受nil控制则是正常类型强制拆封如果我们能确定可选类型一定有值,那么在读取它的时候,可以在可选类型的后面加一个感叹号(!)println对result1中的语句进行了强制拆封前问号,后感叹号,强制拆封隐式拆封为了能够方便的访问可选类型,可以将可选类型后面的问号改成感叹号(!问号表示引用的时候,如果某个环节为nil,她不会出现错误,而是把nil返回给引用者,这种使用问号引用可选类型的方式叫做可选链三、使用问号?

随机推荐

  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,所以编译器会报错,现在来一一解决。

返回
顶部