Swift运算符

包括比较运算符,逻辑运算符,范围运算符,和位运算符。Swift允许重载运算符,也可以自定义运算符。

1. 赋值运算符 “=”
用于将一个变量,常量或表达式的值赋值给另一个变量。

//为变量str赋值
        var str = "is good"
        //为变量p赋值
        var p:Double = 3.14
        //为变量v赋值
        var v:Bool = true
        //将一个变量赋值给另一个变量
        var str2:String = str
        //将一个表达式的值赋给变量
        var d:Double = 12.34
        //将表达式的值赋给d2
        var d2 = d + 5
        println(d2)
需要注意的是,Swift不支持连续赋值,Swift的赋值语句没有返回值,Swift编译器可防止把等号“==”写成赋值符“=”导致的错误。
var a:Int
        //由于赋值表达式a=20,实际上是没有值的,因此编译器对变量b发出警告
        var b = a = 20
  1. 算术运算符 “+”“-”“*”“/”“%”“++”“–”
//+可以作为字符串链接符
        var a = 5.4
        var b = 3.2
        var sum = a + b
        println("sum的值:\(sum)")
        var s:String = "is good"
        var d:String = "ha ha"
        var u:String = s + d
        println("u is \(u)")

        //-
        var c = 5.3
        var d = 3.2
        var sub = c - d
        println(sub)
        //*
        var e = 5.2
        var f = 3.1
        var multiply = e * f
        println("multiply \(multiply)")
运算符"/"需要注意的是如果两个操作数都是整数类型,侧记过也是整数,结果,是自然除法的截断取整。除数不可以为0。如果有一个是浮点型,或者两个都是浮点型,侧结果和自然除法的结果一样,除数可以是0或0.0,得到的结果是正无穷大或富无穷大。
println("13/3的结果\(13/3)")//结果是4
        var a = 5.2
        var b = 3.1
        var div = a / b
        println(div)//div=1.67741935483871
        //输出正无穷大inf
        println("\(5 / 0.0)")
        //输出负无穷大-inf
        println("\(-5.0 / 0)")

// println("5除以0 \(5 / 0)")//报错

        //求余运算%,支付浮点型求余,当求余运算的两个操作数中,有一个或者两个浮点数,允许第二个操作数是0或者0.0,结果是非数:nan
        var a = 5.2
        var b = 3.1
        var mod = a % b
        println(mod)//2.1
        println("\(-5.2 % -3.1)")//-2.1
        println("\(-5.2 % 3.1)")//-2.1
        println("\(5 % 0.0)")//nan
        println("\(0 % 5.0)")//0.0
        println("\(-5 % 0)")//报错
        //只要被除数是正数,不管除数是正还是负,其求余一定是正数,反之亦然

        //++自加 --自减,只能操作变量,不能操作数值,常量或表达式。5++,6--是错误的

        //复杂运算,需要导入<math.h>,即导入Foundation
        //3.2的5次方
        println("\(pow(3.2,5))")//335.54432
        //3.2的平方根
        println("\(sqrt(3.2))")//1.78885438199983
        //返回0~10的随机数
        println("\(arc4random() % 10)")

2.溢出运算符
1.溢出加“&+”2.溢出减“&-”3.溢出乘“&*”4溢出除“&/”5溢出求余“&%”

//不允许常量或变量被赋值一个超出其表数范围的数值,否则会出错
        var a:Int16 = 32767
// a = a + 1//报错

3.位运算符

//位运算符,使用位运算符可以直接操作数值的原始bit位,自定义的协议进行通信,使用原始数据进行编码和解码也非常有效
        //1.按位与&2.按位或|3.按位异或^4.按位取反~5.左位移运算符<<6右位移运算符>>
        println(5 & 9)//1
        println(5 | 9)//13
        //按位异或,按位取反
        var a:Int32 = -5
        println(~a)//4
        println(5 ^ 9)//12

4.范围运算符

//范围运算符
        //1.闭范围运算符a...b,用于定义一个a~b(包括a,b边界值的范围),a不能大于b
        var range1 = 1...6
        for num in range1
        {
            println("\(num)")
        }
        //2.半开范围运算符a..<b(包括a边界,但不包括b边界值,a也不能大于b)

        let books = ["sweift","OC","c","c++"]
        for index in 0..<books.count
        {
            println("\(index) is \(books[index])")
        }

        //比较运算符
        //>,>=大于或等于,<,<=小于或等于,==,!=不等于,===恒等于,!==等于
        //逻辑运算符
        //&&与,前后都必须true才返回true,&不短路与,||或,两个操作数中有一个是ture返回就是true,|不短路或,!只需要一个操作数,^异或,当两个操作数不同时返回true
        //三目运算符?:,
        var a = 5
        var b = 2
        var str = a > b ? "a大于b":"a不大于B"
        println(str)
        //大部分被if else 代替
        var str2:String! = nil
        if a > b
        {
            str2 = "a 大于 b"
        }
        else
        {
            str2 = "a 不大于b"
        }
        println(str2)

本文内容来自《疯狂讲义》

Swift运算符的更多相关文章

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

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

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

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

  3. ios – Objective-C compareTo:

    有没有一个比较Objective-C中的两个对象的标准机制?我知道isEqual方法,但我并不是在寻找完全相同的方式,而是比较少于/多于/等于某种比较.在Java中,我们有compareto:这样做,Objective-C中有什么吗?

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

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

  5. 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

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

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

  7. Swift算术运算符

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

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

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

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

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

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

返回
顶部