swift入门第三章集合、控制流,标签语句

前端之家收集整理的这篇文章主要介绍了swift入门第三章集合、控制流,标签语句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

数组

swift中的集合有:数组、字典、set。三者的区别为

  • 1、在swift中的集合类=是值类型,而OC中的是引用类型
  • 2、在swift中使用引用计数的概念来管理内存,但是引用计数只适用于对象类型,值类型不需要管理
  • 3、swift中引用计数管理内存的方法与OC中的引用计数管理内存的方法还是不同的
  • 4、在swift中数组是可以存放任意类型的,OC中只能存放对象类型

数组

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可以进行修改添加,当填入的键存在时就会进行数据更新,把键对应的老的值返回出来。当键不存在时,就会进行添加,返回nil

let 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.若想贯穿可以加fallthrough

var 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 through

break在循环当中,跟c语言的语法规则一样,用来结束整个循环

continue在循环中,跟c语言的语法规则一样,用来结束本次循环

标签语句

当我们遇到多个循环嵌套的时候,我们根据需求,想要关掉某个循环,此时我们就要使用标签语句,用来区别不同的循环。标签语句的定义语法:name:写到想要标识的循环前面.

ayang: while true {
    for var labelNumber = 0; labelNumber < 100; labelNumber++ {
        if labelNumber == 5 {
            break ayang
        } 
        println("labelNumber = \(labelNumber)")
    }
}

猜你在找的Swift相关文章