Swift 基本运算符和集合类型

来源:互联网 发布:威斯敏斯特大学 知乎 编辑:程序博客网 时间:2024/05/25 21:34

swift 支持大部分C语言的运算符, 其中有所改动的有取余运算符(%),可以对浮点数进行取余运算. 还增加了C中没有的表示在两数之间的区间运算符( … ).
且改进许多运算符的特性减少编码错误.

<一>运算符

1.在赋值运算符中如果符号的右边是一个多元组, 它的元素可以马上被分解为多个变量或常量
2.区间运算符: 闭区间运算符为 “… ” 3…6 从3到6之间的值包含3和6
半闭区间:半闭区间 a..b定义一个从a到b但不包括b的区间,即包含第一个值但是不包含最后一个值
3. 判断字符串是否为空可以写为 字符串.isEmpty判断返回的布尔值

let name = "zhang san"countElements(name)

4.字符串比较 : 依然用函数hasPrefix 和 hasSuffix来比较前缀相等和后缀相等, 相等可以使用 == 来判断
5.修改字符串的大小写: 使用函数uppercaseString 改为大写和 lowercaseString改为小写

<二>数组

  1. 构建一个空数组

    var someInts = [Int] ()或 var someInts = Int [] ()

2.swift 还提供了一种指定数组大小和设置默认值的的初始化方法

var array = [Double](count: 3, repeatedValue: 1.0)因为类型推断的存在也可以写为var array = Array (count: 3, repeatedValue: 2.3)

3. 可以通过加法运算符把两个类型相同的数组创建出一个新的数组

var otherArray = [Double](count: 3, repeatedValue: 2.5)var sixArray = array + otherArray   //实现两个数组的合并

4.迅速创建一个数组,如下:

var shoppingList : String[] = ["eggs", "milk", "apple"]或写为 : var shoppingList = ["eggs", "milk", "apple"]

5.访问和修改数组. 可以使用append方法来在数组后面添加新的数据项

shoppingList.append("flour")也可以使用赋值运算符+=添加数据项shoppingList += "Baking Powder"也可以使用这种方法直接添加相同类型的数据shoppingList += ["Chocolate Spread", "Cheese", "Butter"]

可以使用下标一次改变一系列数据值

shoppingList[4...6] = ["Bananas", "Apples"]三个换为了两个,所以数组中元素个数减一

6.调用数组的insert(atIndex:)方法来在某个具体索引值之前添加数据项:

shoppingList.insert("Maple Syrup", atIndex: 0) //使Maple Syrup变为数组中的第一个数

类似的可以使用removeAtIndex方法来移除数组中的某一项,它会把特定的项删除,并返回(返回值无用时可以直接忽略)

let removeOne = shoppingList.removeAtIndex(0)  //删除0项, 将一处的值赋给removeOne

也可以使用removeLast删除数组中的最后一项,返回删除的值

let apple = shoppingList.removeLast()

7.数组的遍历 依然可以正常的使用for-in和for循环, 也可以使用全局enumerate函数进行遍历,它可以返回一个由每个数据项的索引值和数据组成的键值对

for (index, value) in enumerate (shoppingList) {println("第\(index + 1)项是 : \(value)")}

<三>字典

1.swift的字典通过Dictionary定义,

var airports : Dictionary = ["TYO": "Tokyo", "DUB": "Dublin"]或是 var airports = ["TYO": "Tokyo", "DUB": "Dublin"] //swift 可以推断出使Dictionary类型

2.读取和修改字典
可以使用count来获取字典中数据项个数: airports.count
可以使用正确类型的key为索引添加数据项

airports["LHR"] = "London" //使字典中现在的数据项个数增加到3个也可以使用key改变value值airports["LHR"] = "London Heathrow"

updateValue(forKey:)函数修改字典. 在这个key不存在的时候添加 ,返回一个nil,存在时修改值,返回原来的value值.

let oldValue = airports.updateValue("Dublin Internation", forKey: "DUB")  

直接由key检索出value

 let airportName = airports["LHR"]  //直接返回value值

可以通过给摸个key对应的value赋值为nil 而删除键值对

airports["LHR"] = nil

removeValueForKey方法也可以用来在字典中移除键值对,在键值对存在的情况下会移除该键值对并且返回被移除的value或者在没有值的情况下返回nil:
3.字典的遍历
可以使用for-in 和(key, value)元组来遍历字典

for (airportCode, airportName) in airports {    prINTln("\(airportCode): \(airportName)") } 

也可以通过访问key或是value属性检索字典

for airportCode in airports.keys {   //通过key检索  prINTln("Airport code: \(airportCode)") } for airportName in airports.values { //通过value检索  prINTln("Airport name: \(airportName)") } 

通过字典的keys和values属性可以直接构造数组

let airportCodes = Array(airports.keys) let airportNames = Array(airports.values) 
0 0