基本运算符中Swift和Java的比较
Posted 自相矛盾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基本运算符中Swift和Java的比较相关的知识,希望对你有一定的参考价值。
1. 在Swift和Java基本运算符语法中,赋值运算符、算术运算符、求余运算符、自增和自减运算、一元负号运算符、一元正号运算符、逻辑运算、比较运算符、三目运算符(Ternary Conditional Operator)等这些运算符用法大同小异,接近相同,就不在分析了,下面对一些Swift中特有的语法进行分析。
2. 空合运算符
空合运算符(Nil Coalescing Operator):空合运算符(a ?? b
)将对可选类型a
进行空判断,如果a
包含一个值就进行解封,否则就返回一个默认值b
.这个运算符有两个条件:
- 表达式
a
必须是Optional类型 - 默认值
b
的类型必须要和a
存储值的类型保持一致
下文例子采用空合并运算符,实现了在默认颜色名和可选自定义颜色名之间抉择,代码如下:
let defaultColorName = "red" var userDefinedColorName:String? //默认值为nil var colorNameToUse = userDefinedColorName ?? defaultColorName //userDefinedColorName的值为空 ,所以colorNameToUse的值为`red`
userDefinedColorName
变量被定义为一个可选字符串类型,默认值为nil。由于userDefinedColorName
是一个可选类型,我们可以使用空合运算符去判断其值。在上一个例子中,通过空合运算符为一个名为colorNameToUse
的变量赋予一个字符串类型初始值。 由于userDefinedColorName
值为空,因此表达式userDefinedColorName ?? defaultColorName
返回默认值,即red
。
另一种情况,分配一个非空值(non-nil
)给 userDefinedColorName
,再次执行空合运算,运算结果为封包在userDefaultColorName
中的值,而非默认值,代码如下:
userDefinedColorName = "green" colorNameToUse = userDefinedColorName ?? defaultColorName //userDefinedColorName非空,因此colorNameToUsede的值为绿色
3. 区间运算符
区间运算符:Swift 提供了两个方便表达一个区间的值的运算符。
闭区间运算符:闭区间运算符(a...b
)定义一个包含从a
到b
(包括a
和b
)的所有值的区间,b
必须大于a
。 闭区间运算符在迭代一个区间的所有值时是非常有用的,如在for-in
循环中,代码如下:
for i in 1...5{ print("i = \(i) * 5 = \(i * 5)") } // i = 1 * 5 = 5 // i = 2 * 5 = 10 // i = 3 * 5 = 15 // i = 4 * 5 = 20 // i = 5 * 5 = 25
半开区间运算符:半开区间(a..<b
)定义一个从a
到b
但不包括b
的区间。 之所以称为半开区间,是因为该区间包含第一个值而不包括最后的值。半开区间的实用性在于当你使用一个0始的列表(如数组)时,非常方便地从0数到列表的长度。代码如下:
var names :[String] = ["Anna", "Alex", "Brian", "Jack"] let count = names.count for i in 0..<count{ print("第\(i)个名字叫\(names[i])") } // 第 1 个人叫 Anna // 第 2 个人叫 Alex // 第 3 个人叫 Brian // 第 4 个人叫 Jack
以上是关于基本运算符中Swift和Java的比较的主要内容,如果未能解决你的问题,请参考以下文章