swift入门第三章集合、控制流,标签语句
发布时间:2020-12-14 02:05:11 所属栏目:百科 来源:网络整理
导读:数组 swift中的集合有:数组、字典、set。三者的区别为 1、 在swift中的集合类=是值类型,而OC中的是引用类型 2、 在swift中使用引用计数的概念来管理内存,但是引用计数只适用于对象类型,值类型不需要管理 3、swift中引用计数管理内存的方法与OC中的引用计
数组swift中的集合有:数组、字典、set。三者的区别为
数组1. swift中,Array也没有可变和不可变之分,而是取决于用什么关键字来修饰,var就是可变,let就是不可变2. 使用字面量来给一个数组赋值当我们显式声明数组中元素的类型时,内部的元素类型必须一致(隐式的话只要是对象就可以)var array:[String] = ["ayang","yang","shuaiqi"] 数组增加元素1.调用append方法进行元素添加时,是添加到数组最后面array.append("shuai") 2.调用+=方法进行元素添加,也是添加到数组最后面array += ["haha","heihei"] 3.调用insert方法进行元素添加array.insert("hehe",atIndex: 0) 数组删除元素1.删除指定下标的元素array.removeAtIndex(2) 2.删除所有元素array.removeAll(keepCapacity: true) 改变数组中的元素1.通过下标来更改元素array[0] = "happy" array[1] = "yes" 2.利用下面的方法,不仅可以修改,而且可以删除元素array[0...3] = ["1","2","3"] 数组查询利用for-in来进行数组遍历for value in array { println("value = (value)") } 使用全局enumerate函数返回一个由每一个数据项索引值和数据值组成的元组for (index,value) in enumerate(array) { println("(index):(value)") } 数组的初始化(声明存储固定类型的数组)使用构造方法创建的是由一个特定数据类型构成的数组第一种方式var initArray:[String] = [String](count: 3,repeatedValue: "hehe") 第二种方式var initArray2:Array<String> = Array(count: 4,repeatedValue: "jian") 字典使用字面量来给字典进行赋值(无序排列)var dictionary = ["name":"doubleDragon","age":24,"gender":"male"] 增使用下标增加键值对dictionary["address"] = "anyWhere" dictionary["number"] = 24 删调用removeValueForKey方法进行删除dictionary.removeValueForKey("name") 改1.使用键,修改固定键对应的值,若键不存在,则是添加dictionary["number"] = 20 2.使用updateValue方法进行修改updateValue可以进行修改和添加,当填入的键存在时就会进行数据更新,把键对应的老的值返回出来。当键不存在时,就会进行添加,返回nillet returnValue = dictionary.updateValue(10,forKey: "number") let returnValue2 = dictionary.updateValue(30,forKey: "class") 查(遍历字典)for (key,value) in dictionary { println("key = (key),value = (value)") } 字典初始化的方法也有两种使用字典初始化方式创建的是固定键值类型的字典1.var initDictionary:[String:String] = [String:String]() 2.var initDictionary2:Dictionary<String,String> = Dictionary() 控制流for循环1.for-in循环for value in 1...10 { println("value = (value)") } 当我们不需要使用区间的值时,可以使用_告知系统for _ in 1...10 { println("good") } 2.for循环for var index = 0; index < 10; index++ { println("index = (index)") } while循环var whileNumber = 0 while whileNumber < 10 { println("whileNumber = (whileNumber)") whileNumber++ } do-while循环do { println("执行一次") } while(false) if-else语句var aValue = 20 if aValue <= 21 { println("aValue <= 21") } else { println("aValue > 21") } switch-case语句1.在swift中,是没有贯穿的,只会执行满足条件的语句,不用加break也不会贯穿2.每一个case分支中都必须有一个语句,假如真不想写,可以加break,通过编译3.swift中,case可以加多个条件4.若想贯穿可以加fallthroughvar switchNumber = 10 switch switchNumber { case 10,3,2,8: println("10") fallthrough case 11: println("11") case 12: break case 13: println("13") default : println("other") } 5.swift中,switch-case可以进行值的绑定var (x,y) = (10,0) switch (x,y) { case (let xValue,0): println(xValue) case (10,let yValue): println(yValue) default: println("others") } 6.swift中,switch-case可以进行区间匹配var domainNumber = 50 switch domainNumber { case 0...10: println("哈哈") case 11...100: println("嘿嘿") case 101...10000: println("哼哼") default: println("others") } 控制流中,我们会遇到的关键字:break,continue,fall throughbreak在循环当中,跟c语言的语法规则一样,用来结束整个循环continue在循环中,跟c语言的语法规则一样,用来结束本次循环标签语句当我们遇到多个循环嵌套的时候,我们根据需求,想要关掉某个循环,此时我们就要使用标签语句,用来区别不同的循环。标签语句的定义语法:name:写到想要标识的循环前面.ayang: while true { for var labelNumber = 0; labelNumber < 100; labelNumber++ { if labelNumber == 5 { break ayang } println("labelNumber = (labelNumber)") } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |