swift语法学习做一个Swifter

Swift 2.0 学习笔记 2_基本运算符

2015-09-30  本文已影响24人  Guibs

 //: 基本运算符

// Swift的赋值符(=)不返回值, 算术运算符(+, -, *, /, % 等)会检测并不允许值溢出

//: 术语

// 运算符有一元, 二元和三元运算符

//: 赋值运算符

// 赋值运算(a=b), 表示用b 的值来初始化或更新a 的值

let b = 10

var a = 5

a = b  // a 现在等于10

// 如果赋值的右边是一个多元组, 它的元素可以马上被分解成多个常量或变量

let (x, y) = (1, 2) // 现在x = 1, y = 2

// 与C 语言和 Objective-C 语言不同, Swift 的赋值运算操作不返回任何值

/*

if x = y {

//此句错误, 因为x = y 不反悔任何值

}

*/

//: 算术运算符

1 + 2

5 - 3

2 * 3

10.0 / 2.5

// 与C 语言和Objective-C 语言不同的是, Swift 默认不允许在数值运算中出现溢出情况

// 加法运算符(+)也可以用于String 的拼接

"hello, " + "world"

//: 求余运算符

9 % 4

-9 % 4

9 % -4

// a % b, 对负数b 求余时, b 的符号会被忽略. a % b 和 a % -b 结果是一样的.

//: 浮点数秋雨运算

// 不同于C 语言和Objective-C 语言, Swift 中是可以对浮点数进行求余的

8 % 2.5 // 0.5

//: 自增和自减运算

var i = 0

++i // 现在i = 1

// 当++前置的时候, 先自增再返回

// 当++后置的时候, 先返回再自增

var a1 = 0

let b1 = ++a1 // a1 和b1 现在都是1

let c1 = a1++ // a1 现在是2, 但c 是a 自增前的值1

//: 一元负号运算符

// 数值的正负号可以使用前缀(-)来切换:

let three = 3

let minusThree = -three

let plusThree = -minusThree

//: 一元正号运算符

// 一元正号运算符(+)不做任何改变地返回操作数的值

let minusSix = -6

let alsoMinusSix = +minusSix

//: 复合赋值

var a2 = 1

a2 += 2  // a2 现在是3

// 复合赋值运算没有返回值, let b = a += 2这类代码是错误的

//: 比较运算符

// 每个比较运算符都返回了一个标识表达式是否成立的布尔值

1 == 1

2 != 1

2 > 1

1 < 2

1 >= 1

2 <= 1

// 比较运算多用于条件语句, 如if 条件

let name = "world"

if name == "world" {

print("Hello, World")

} else {

print("I'm sorry \(name), but I don't recognize you")

}

//: 三目运算符

/*

问题 ? 答案1: 答案2

*/

/*

if question {

answer1

} else {

answer2

}

*/

let contentHeight = 40

let hasHeader = true

let rowHeight = contentHeight + (hasHeader ? 50: 20)

//: 空合运算符

// 空合运算符(a ?? b)将对可选类型a进行空判断, 如果a 包含一个值就进行解封, 否则就返回一个默认值b

// 前提条件: 表达式a 必须是Optional类型, 默认值b 的类型必须要和a 存储值的类型保持一致

// a ?? b  ====  a != nil ? a!: b

let defaultColorName = "red"

var userDefinedColorName: String?

var colorDefinedColorNameToUse = userDefinedColorName ?? defaultColorName

// 由于userDefinedColorName 的值为nil, 所以colorDefinedColorNameToUse 的值为red

userDefinedColorName = "green"

colorDefinedColorNameToUse = userDefinedColorName ?? defaultColorName

// 由于userDefinedColorName 的值为green, 所以colorDefinedColorNameToUse 的值为green

//: 区间运算符

// 闭区间运算符(a...b)定义一个包含从a 到b (包括a 和b)的所有值的去见, b 必须大于等于a

for index in 1...5 {

print(index)

}

// 半开区间运算符(a..

上一篇 下一篇

猜你喜欢

热点阅读