The Swift Programming Language学习笔记(三)——基本运算符
基本运算符今天我们来看看Swift的基本运算符。 Swift支持大部分标准C语言的运算符,且改进许多特性来减少常规编码错误。如赋值符( 不同于C语言,Swift允许对浮点数进行取余运算( 术语运算符分为一元、二元和三元运算符。受运算符影响的值叫操作数。
赋值运算符即 let a = 100
var b = 0
b = a
let (c,d) = (1,2)
与C语言和Objective-C不同,Swift的赋值操作并不返回任何值。这个特性使得你无法把 var a = 1
var b = 2
/*if a = b { // error: type '()' does not conform to protocol 'BooleanType'
print("a == b.")
}*/
算术运算符基本的算术运算符有 print(3 + 2)
print(3 - 2)
print(3 * 2)
print(3 / 2) // 1
print(3 / 2.0) // 1.5
print("111" + "222") // 111222
var a:Int8 = 100
var b:Int8 = 28
var c:Int8 = 0
var d:Int8 = 0
// c = a + b // Execution was interrupted,reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP,subcode=0x0)
print(c)
d = a &+ b
print(d) // -128
求余运算符求余运算( print(9 % 4) // 1
print(-9 % 4) // -1
print(-9 % -4) // -1,后两个结果相同
浮点数求余计算不同于C和Objective-C,Swift可以对浮点数求余。 print(8 % 2.5) // 0.5
print(8 % -2.5) // 0.5 上面两行的结果相同
print(-7 % 3.1) // -0.8
自增和自减运算即
var a = 0
++a
print(a) // 1
var b = -1.23
++b
print(b) // -0.23
var c = 1
let d = ++c
print(c) // 2
print(d) // 2
let e = c++
print(c) // 3
print(e) // 2
除非你需要使用 一元负号运算符数值的正负号可以使用前缀 一元正号运算符一元正号( 组合赋值运算符即Compound Assignment Operators。如 var a = 1
var b = 2
// b = a += 2 // error: cannot assign a value of type '()' to a value of type 'Int'
var a = 1
let b = a += 2
print(b) // (),没有错误
var c = a += 2
print(c) // (),没有错误
比较运算符即 三目运算符三目运算符(Ternary Conditional Operator)。原型是 三目运算提供有效率且便捷的方式来表达二选一的选择。过度使用三目运算符会使简洁的代码变的难懂。我们应避免在一个组合语句中使用多个三目运算符。 空合运算符Nil Coalescing Operator。空合运算符
空合运算符是对代码 特别注意:如果 var a = 100
var b:Int?
var c = b ?? ++a
print(c) // 101
print(a) // 101
var d:Int = 200
c = d ?? ++a
print(c) // 200
print(a) // 101
区间运算符Swift提供了两个简洁表达区间的值的运算符。 闭区间运算符即 半开区间运算符即 逻辑运算即逻辑非( 逻辑非逻辑非运算( 逻辑与逻辑与( 逻辑或逻辑或( 逻辑运算符组合计算Swift逻辑操作符 使用括号来明确优先级可读性比简洁性更重要,请在可以让你代码变清晰的地方加个括号吧! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |