首页 > 其他分享 >iOS开发Swift-基本运算符

iOS开发Swift-基本运算符

时间:2023-08-23 13:55:24浏览次数:33  
标签:... .. Swift 短路 iOS 运算符 计算 true

1.一元、二元、三元运算符

一元 单一操作对象 -a    !b    c!
二元 两个操作对象 2 + 3
三元 三目运算符 a ? b : c

2.赋值运算符(=)

let a = 10
var b = 5
b = a
let (x, y) = (1, 2)

赋值运算符不返回任何值,所以 if x = y { ... } 无效。

3.算术运算符

+   -   *   /

默认不允许数值运算中溢出。

溢出运算符:   a &+ b

4.求余运算符

a % b = 余数

a = (b * 倍数) + 余数

所以a % b = a % -b

5.组合赋值运算

var a = 1
a += 2     //a = a + 2

6.比较运算符

==     !=      >      <      >=      <=

===恒等      !==不恒等    用于判断两个对象是否引用自同一对象实例

返回布尔值。

元组比较:两元组的元素类型与长度都相等的元组即可比较。从左向右比较,如果前面的元素比较成功则不会再往后比较。

(1, "a") < (2, "b")
(3, "a") < (3, "b")
(4, "d") == (4, "d")

7.空合运算符(??)

a ?? b //相当于 a != nil ? a! : b
//a为option类型,b与a的存储值类型一致。a非空时对a进行强制解析,a为空时返回b。
//短路求值:a非空时不会再计算b

8.闭区间运算符

a ... b  //a到b间所有的值。a<=b
1 ... 5  //1, 2, 3, 4, 5

9.半开区间运算符

a ..< b   //适用于数组遍历, 0  ..< 数组长度
1 ..< 5   //1, 2, 3, 4

10.单侧区间

往一侧延申的区间

[ 2... ]
[ ...2 ]

11.半开单侧区间

[ ..<2 ]

12.逻辑运算符

!a 相反    
a && b 全true为true 短路计算(a为false时不会再计算b) 左结合(没有括号时从左往右计算)
a || b 一true为true 短路计算(a为true时不会再计算b) 左结合

 

标签:...,..,Swift,短路,iOS,运算符,计算,true
From: https://www.cnblogs.com/lysboke/p/17651430.html

相关文章

  • Swift-基础语法之变量&常量&元组
    使用 let来声明一个常量,用 var来声明一个变量。常量的值在编译时并不要求已知,但是你必须为其赋值一次。这意味着你可以使用常量来给一个值命名,然后一次定义多次使用varmyVariable=42myVariable=50letmyConstant=42常量或者变量必须拥有和你赋给它们的值相同的类型。不......
  • swift学习笔记之控制流
    控制流:1、if语句letcount=5ifcount>=3{print("yes")}else{print("no")}2、switch语句(1)Swift中不需要在case块中显示地使用break跳出switch。如果想要实现C风格的落入特性,可以给需要的case分支插入fallthrough语句letfruit="apple"switchfruit{case"a......
  • ios 生成一个动态的随机的头像/随机数的操作
               在写项目的时候,可能会遇到这种情况,用到集中随机的颜色,或者头像等,首先:把所需要的图片放进一个数组当中imgsAry=@[@"t1.png",@"t2.png",@"t3.png",@"t4.png",@"t5.png",@"t6.png",@"t7.png",@"t8.png"];然后根据数组的count数生成一个随机......
  • iOS根据文字字数动态确定Label宽高
    我们有时候在写项目的时候,会碰到,意见反馈,还有其他地方,讲座活动细则等需要大篇展示的文本,因为每次服务器返回的内容大小不一,所以需要动态的调整label的宽高:在ios6的时候可以:-(void)creatLabel{//根据文字字数动态确定label宽高_nameLabel=[[UILabelalloc]init......
  • swift学习笔记之---数组、字典、枚举、结构体
    1、数组-Arraylettypes=["none","warning","error"]//省略类型的数组声明letmenbers=[String]()//声明一个空数组menbers.append("six")//添加元素menbers+=["seven"]//添加元素menbers.insert("one"......
  • ios 调用系统应用的方法 应用间跳转的方法
    声明一个私有方法:#pragmamark-私有方法-(void)openUrl:(NSString*)urlStr{//注意url中包含协议名称,iOS根据协议确定调用哪个应用,例如发送邮件是“sms://”其中“//”可以省略写成“sms:”(其他协议也是如此)NSURL*url=[NSURLURLWithString:urlStr];UIApplica......
  • ios button标记
    在写项目的时候,for循环创建多个button,在需要设置背景图片和,需要标记所选中的button的需求,在这里提供两种方法:一:1:把for循环创建的button全部装到一个新建的数组中,把他们的点击事件都写在一个方法里,把button给传到方法中去,在button的点击方法里面遍历装有button的数组,让他显示没有被......
  • iOS 在UILabel显示不同的字体和颜色(转)
    在项目开发中,我们经常会遇到在这样一种情形:在一个UILabel使用不同的颜色或不同的字体来体现字符串,在iOS6以后我们可以很轻松的实现这一点,官方的API为我们提供了UILabel类的attributedText,使用不同颜色和不同字体的字符串,我们可以使用NSAttributedText和NSMutableAttributed......
  • ios8 UITableView设置 setSeparatorInset:UIEdgeInsetsZero不起作用的解决办法
    在ios7中,UITableViewCell左侧会有默认15像素的空白。这时候,设置setSeparatorInset:UIEdgeInsetsZero能将空白去掉。但是在ios8中,设置setSeparatorInset:UIEdgeInsetsZero已经不起作用了。下面是解决办法首先在viewDidLoad方法加入以下代码: if([self.tableViewrespondsToSelect......
  • ios中利用NSDateComponents、NSDate、NSCalendar判断当前时间是否在一天的某个时间段
    应用中设置一般会存在这样的设置,如夜间勿扰模式,从8:00-23:00,此时如何判断当前时间是否在该时间段内。难点主要在于如何用NSDate生成一个8:00的时间和23:00的时间,然后用当前的时间跟这俩时间作对比就好了。下面提供两条思路:法1.用NSDate生成当前时间,然后转为字符串,从字符串中取出当前的......