您的位置:首页 > 移动开发 > Swift

swift 数组、字典、集合、结构体、枚举——swift学习(四)

2016-05-19 10:58 483 查看
//数组 array
let arr:Array = [4,5,6];  //不可变数组
var mulArr:Array = ["a","b","c"]; //没有显示说明数组元素的数据类型
var mulAr2:Array = [Int]() // 声明一个空数组
mulAr2.append(1)//添加元素
mulAr2+=[2,3]//添加数组
mulAr2+=arr//添加数组
mulAr2.insert(0, atIndex: 0)//指定位置添加元素
for element in mulAr2{
print("\(element)")
}
print("\n")
mulAr2[1] = 7 //通过下标修改元素
mulAr2[0...2] = [7,8,9] //通过区间修改元素
for element in mulAr2{
print("\(element)")
}
print("\n")
if !mulAr2.isEmpty{//判断数组是否为空
print("\(mulAr2.count)")//count数组个数
}
print("\n")
mulAr2.removeAtIndex(2)//删除下标为2的元素
for element in mulAr2{
print("\(element)")
}
print("\n")
mulAr2.removeLast()//删除最后的元素
for element in mulAr2{
print("\(element)")
}
print("\n")
mulAr2.removeFirst(2)//删除前两个元素
for element in mulAr2{
print("\(element)")
}
print("\n")
let newMulArr = mulAr2+arr//数组组合
for(index,value) in newMulArr.enumerate(){//使用enumerate()同时遍历数组的所有索引与数据
print("index:\(index) value:\(value)")
}

//字典 dictionary
var empty = [String:Int]()//建立一个空的字典
empty["test"] = 1//添加一个元素
empty = [:]//又变成一个空数组

var myDic:Dictionary = ["name":"shayne","age":"24"]
myDic["address"] = "china"//添加元素
myDic["sex"]="boy"
myDic.removeValueForKey("age")//删除“name”这个key值
myDic["address"] = nil
for (key,value) in myDic{//遍历字典的键值对
print("\(key):\(value)")
}
for key in myDic.keys{//遍历字典的键
print("\(key)")
}
for value in myDic.values{//遍历字典的值
print("\(value)")
}

if let oldValue = myDic.updateValue("fcf", forKey: "name"){//updateValue用于修改相应键对应的值,因为字典有可能不存在该值,所以要使用可选型
print("\(oldValue):\(myDic["name"]!)")
}

//集合 set
var emptySet = Set<Character>()//创建一个特定类型的空集合,注意这里的类型一定要显性表示出来
print("\(emptySet.count)")
emptySet.insert("c")
emptySet = []//置空

var set1:Set = ["b","c","a"]//这里的类型就可以省略
set1.insert("d")//
if let removeSetItem = set1.remove("b"){//移除元素
print("\(removeSetItem)")
}

if set1.contains("a"){//是否包含某个元素
print("\(set1.indexOf("a"))")//拿到索引
}

for itemOfSet in set1.sort(){//排序
print("\(itemOfSet)")
}

let set2:Set<Int> = [1,3,5,7,9]
let set3:Set<Int> = [0,2,4,6,8]
let sushu:Set<Int> = [2,3,5,7]

for item in set2.union(set3){//并集
print("\(item)")
}
print("\n")
for item in set2.intersect(sushu){//交集
print("\(item)")
}
print("\n")
for item in set2.exclusiveOr(sushu){//set2与sushu的并集除set2与sushu的交集
print("\(item)")
}
print("\n")
for item in set2.subtract(sushu){//set2中除去set2与sushu的交集
print("\(item)")
}

//使用==判断两个子集是否相等
//isSubsetOf()判断集合中的某个值是不是在另一个集合中
//isSupersetOf()判断一个集合是不是包含另外一个集合的所有值
//isStrictSubsetOf()判断某个集合是不是某个集合的子集且两个集合不等
//isStrictSupersetOf()判断某个集合是不是某个集合的父集且两个集合不等

//结构体 struct
struct BookInfo{
var ID:Int = 0
var Name:String = "Default"
var Author:String = "fcf"
}

var book1:BookInfo // 默认构造器创建结构体实例
var book2 = BookInfo(ID:001,Name:"shayne",Author: "fcf")//
book2.ID = 002 //修改值

//枚举 enum
enum Direction{
case North
case South
case East
case West
}
var direction = Direction.East

enum Planet:Int{
case Mercury = 1
case Venus = 2
case Earth = 3
}
let earthOrder = Planet.Earth.rawValue //rawValue获取原始值
print(earthOrder)
let possiblePlanet = Planet(rawValue:2) //通过原始值来寻找对应的枚举成员
print(possiblePlanet!)
enum Direct {
case Up
case Down
func description() -> String {
switch (self) {
case .Up:
return "上"
//这里不需要使用break跳出,但是要往下执行可以加fallthrough
case .Down:
return "下"
}
}
}
print(Direct.Up.description())
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  swift 枚举