玖叶教程网

前端编程开发入门

Swift学习笔记——基本类型(续)(swift基础)

今天说一下Swift基本类型中的元组(tuples)、 数组(array)、集合(set)和字典(dictionary)。 其中,数组(array):有序数据集、集合(set):无序,无重复元素的数据集和字典(dictionary):无序键值对数据集,都属于集合(Collection)类型,这些集合类型中存储的数据类型必须明确。如果在定义一个上述集合类型时指定大小,那么集合的容量就不可变了。如果不指定大小,集合就是可变的。

元组(tuples)

元组就是把多个数据组合在一起,构成的为了表示一定意义的复合值。元组中的数据可以是任意类型。文字很抽象,举个例子吧。

(404, "Not Found")

这就是一个元组,类型是(Int,String),它可以描述浏览器请求网页返回的的HTTP状态。

var httpStatus = (404, "Not Found")

//变量httpStatus的类型是(Int,String),值是(404, "Not Found")

元组的组成可以包含任意多个类型的数据,例如:

(Int,String,Double,Bool)

元组内值的访问

let (num, message) = httpStatus

print("status num is \(num)")//输出404

print("status message is \(message)")//输出Not Found

或者定义元组时,就给元组内的元素命名:

var httpStatus = (num: 404, message:"Not Found")

print("status num is \(httpStatus.num)")

print("status message is \(httpStatus.message)")

使用元组可以实现函数的多返回值,在学习函数时会具体举例。

数组(Array)

定义一个数组需要指定存储的数据类型,code:

var sampleArray1 = Array<String>

var sampleArray2 = [String]()

var sampleArray3:[String]=["hi","ha"]

前两种方法都是定义了一个String类型的空数组,第三种定义并赋给初值。 增加元素:

sampleArray.append("nihao")//增加一个元素

sampleArray = []//数组置空,存储的类型仍为String

指定大小的数组

var myArray = [Int](count:3,repeatedValue:0)//包含3个0的数组

数组加法

var array1 = [Int](count:3,repeatedValue:1)

var array2 = [Int](count:3,repeatedValue:2)

var sumArray = array1 + array2

//sumArray会推断为类型[Int],值 [1,1,1,2,2,2]

数组元素的访问

var v1 = sumArray[0]//访问第0个元素

sumArray[0] = 12//修改第0个元素

var arrayCount = sumArray.count//元素个数

var status = sumArray.isEmpty//是否为空,及count==0

sumArray += [1,2,3]//和一个数组做加法

sumArray[2...4] = [0,0]//将第2到第4,这三个元素删除,并插入 [0,0]两个元素sumArray.insert(100,atIntdex:1)//在第一个位置插入100这个值

sumArray.removeAtIndex(1)//删除第一个位置的元素

数组的遍历

//遍历并打印数组中的所有元素

for num in sumArray {

print("element is \(num)")

}

for (index,num) in sumArray.enumerate() {

print(index, num)

}

enumerate是数组的一个方法,可以返回索引值和对应位置的元素

集合(Set)

存入集合的类型必须是可哈希的,如果不懂哈希,请自行查阅or留言。

集合的创建和初始化

var mySet = Set<String>//空集合var

mySet1:Set<String> = ["c","a","b","d"]

var mySet2:Set = ["c","a","b","d"]

mySet.insert(12)

mySet = []//置空

集合元素的访问和修改

var num = mySet.count//元素个数

var status = mySet.isEmpty//是否为空

var element = mySet.remove("c")//从集合中删除元素"c",并返回

//循环遍历

for ele in mySet {

print("element is \(ele)")

}

集合操作

intersect//集合交操作

exclusiveOr//在A集合不再B集合

union//并操作

subtract//不在A中的元素。。。

关于集合的相关操作还有很多,可以在使用的过程中根据需要查询文档。

字典

字典的创建和初始化

var myDict = [Int: String]()//空字典,key为Int类型,value为String类型

mydict[123] = "nihao"//增加一个值

mydict = [:]//置空,类型不变

//指定类型

var yourDict:[Int,String] = [1:"11",2:"22",3:"33"]//不指定类型,可以自动推断类型

var hisDict = [1:"11",2:"22",3:"33"]

字典元素的访问和修改

yourDict[1] = "change 11"//修改key为1所对应的value值

//另一种修改方法

yourDict.updateValue("change again",forKey:1)

//删除存在的key对应的值

yourDict[1] = nil

//或者这样删除

yourdict.removeValueForKey(1)

//字典的遍历

for (key,val) in yourDict {

//do something

print(key,val)

}

//获取所有key值

var allKeys = [int](yourDict.keys)

//获取所有value值

var allValues = [String](yourDict.values)

字典是无序的,可以使用sort()方法对字典的key或value进行排序

今天就到这里,还有关于可选类型,以后用到会介绍,明天学习控制流,if、switch语句、for循环,while循环repeat-while。后天就学习关键的函数了!

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言