Swift(三)基本运算符

Swift(三)基本运算符,第1张

概述Swift支持大部分标准C语言的运算符,并且对许多特性进行改进来减少常规编码的错误。除了支持基本运算符外,Swift还提供了2个特殊的运算符,分别是:溢出运算符和区间运算符 首先看下基本运算符 import UIKitvar str = "Hello, playground"/** 赋值运算符 1. 注意??:与C语言和OC不同,Swift的赋值 *** 作并不返回任何值。

Swift支持大部分标准C语言的运算符,并且对许多特性进行改进来减少常规编码的错误。除了支持基本运算符外,Swift还提供了2个特殊的运算符,分别是:溢出运算符区间运算符

首先看下基本运算符

import UIKitvar str = "Hello,playground"/** 赋值运算符 1. 注意??:与C语言和OC不同,Swift的赋值 *** 作并不返回任何值。    这个特性是你无法把(==)错写成 (=) */let b = 10var a = b//if a = b {//    // c这样写错误,因为 a = b 并不返回任何值//}/** 算术运算符 1.Swift中所有数值类型都支持基本的四则算术运算符 2.注意??:swift默认情况下不允许在数值计算中出现溢出情况。可以使用溢出运算符实现溢出计算 3.加法运算符 也可用于 String的拼接 */print(1 + 2)print(10 - 3)print(3 * 7)print(27.0 / 3.0)print("hello," + "world") // "hello,world"/** 求余运算符 1. a % b 求余运算符 % 在有的语言中也叫 取模运算符 2. 在对负数b求余时,b的符号会被忽略。这意味着 a % b 和 a % -b的结果相同 */print(9 % 4)// 等于1print(-9 % 4)// 等于-1print(9 % -4)// 等于1/** 一元负号运算符 */let four = 4let tempFour = -four/** 一元正号运算符 该运算符 不做任何改变地返回 *** 作数的值 */let mSix = -6let alsoMsix = +mSix// 等于 -6/** 组合运算符 将其它运算符和赋值运算符(=)组合的f组合运算符 注意??:复合赋值运算符没有返回值 let m = n += 4 这类代码是错误 */var n = 2n += 3print(n)//let m = n += 5//print(m)// 结果是 ()/** 比较运算符 1. 所有标准C语言中的比较运算符都可以在Swift中使用 2. 每个比较运算符返回了一个标识表达式是否成立的布尔值 3. swift提供了恒等(===)和不恒等(!==)这两个比较符来判断两个对象是否    引用同一个对象实例 4. 元组比较:如果两个元组的元素相同,且长度相同的话,元组就可以被比较            比较元组大小会按照从左到右、逐值比较的方式,知道发现两个值不等时停止            如果所有的值都相等,那么这一对元组就相等    注意??:swift标准库只能b比较7个以内元素的元组比较 */print(2 != 1)// trueprint((1,"dog") < (3,"banner"))// true 因为1小于3,所以整个元组就是小于的,不管元组剩下的值如何print((4,"dog") < (4,"banner"))// false 当异地个元素相同的时候,第二个元素就会用做比较/** 三目运算符 */let contentHeight = 40let hasheader = truelet rowHeight = contentHeight + (hasheader ? 50 : 30)/** 空合运算符 a ?? b 将对可选类型a进行空判断,如果a包含一个值就进行解封,否则返回一个默认值b 注意??:表达式a必须是可选类型。默认值b的类型必须和a类型一致 */let defaultcolorname = "red"var userdefinedcolorname: String?// 默认值为nilvar colornameToUse = userdefinedcolorname ?? defaultcolornameprint(colornameToUse)userdefinedcolorname = "blue"colornameToUse = userdefinedcolorname ?? defaultcolornameprint(colornameToUse)/** 逻辑运算符 逻辑运算符的 *** 作对象是逻辑布尔值。 逻辑非 (!a) 逻辑与(a && b) 逻辑或(a || b) */let allowedEntry = falseif !allowedEntry {    print("ACCESS DENIED")}let enteredDoorCode = truelet passedRetinaScan = falseif enteredDoorCode && passedRetinaScan {    print("Welcome!")} else {    print("ACCESS DENIED")}let hasDoorKey = falselet kNowsOverrIDePassword = trueif hasDoorKey || kNowsOverrIDePassword {    print("Welcome!")} else {    print("ACCESS DENIED")}
VIEw Code

区间运算符

/** 1. 闭区间运算符 (a...b)定义一个包含从a到b的所有值的区间,a值不能超过b */for index in 1...6 {    print(index)// 1 2 3 4 5 6}/** 2. 半开区间运算符 (a..<b)定义一个包含从a到b但不包括b的区间 */let names = ["Anna","Alex","Brian","Jack"]let count = names.countfor i in 0..<count {    print("第 \(i + 1) 个人叫 \(names[i])")}/** 3. 单侧区间 可以表达往一侧无限延伸的区间 */for name in names[2...] {    print(name)// Brian Jack}

溢出运算符

//溢出运算符var am = UInt8.max //am = 255//Error: -> var b:UInt8 = am + 1 //注意b会出现溢出,此句报错//下面使用溢出运算符,结果为:0var bm:UInt8 = UInt8(a &+ 1)//类似的还有&-、&*、&/,使用溢出运算符可以在最大值和最小值之前循环而不会报错,下面c的值为255var c:UInt8 = UInt8(bm &- 1)
总结

以上是内存溢出为你收集整理的Swift(三)基本运算符全部内容,希望文章能够帮你解决Swift(三)基本运算符所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1003189.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存