zoukankan      html  css  js  c++  java
  • swift

    //: Playground - noun: a place where people can play

     

    import UIKit

     

    var str = "Hello, playground"

     

    //字典 Dictionary (键值,数据对应的无序数据集合)

     

    //声明字典

    var dict:[String : String] = ["swift":"雨燕","Python":"大蟒","java":"爪哇岛","groovy":"时髦的"]

    //var dict1:Dictionary<String,String> = ["swift":"雨燕","Python":"大蟒","java":"爪哇岛","groovy":"时髦的"]

     

    //空字典的声明

    var emptyDictionary1:[String:Int] = [:]

    var emptyDictionAry2:Dictionary<Int, String> = [:]

    var emptyDictionAry3 = [String:String]()

    var emptyDictionary4 = Dictionary<Int,Int>()

     

    print(dict["swift"])

     

    dict["C++"]

     

    dict.count

    dict.isEmpty

    emptyDictionary1.isEmpty

     

    Array(dict.keys)

    Array(dict.values)

     

    for key in dict.keys {

        print(key)

    }

    for value in dict.values {

        print(value)

    }

     

    for (key, value) in dict {

        print("(key):(value)")

    }

     

     

    let dict1 = [1:"A",2:"B",3:"C"]

    let dict2 = [1:"A",2:"B",3:"C"]

     

    dict1 == dict2//字典是无序的

     

    //字典的操作

     

    var user = ["name":"bobobo","passwork":"liuyubo","occupation":"programmer"]

    //字典元素的修改

    user["occupation"] = "freelancer"

     

    user.updateValue("imooc", forKey: "password")

     

    let oldPassword = user.updateValue("imooc", forKey: "password")

    if let oldPassword = oldPassword,

       let newPassword = user["password"] , oldPassword == newPassword {

        print("注意:修改后的密码和之前一样,可能导致安全问题")

        

    }

     

    //添加元素

    user["email"] = "imooc@imooc.com"

    user

     

    user.updateValue("imooc.com", forKey: "website")

    user

     

    //删除元素

    user["website"] = nil

    user

     

    //user.removeValue(forKey: "email")

    //user

     

    if let email = user.removeValue(forKey: "email") {

        print("电子邮箱(email) 删除成功")

    }

    user.removeAll()

     

     

    ////集合 Set

    //var skillsOfA : Set<String> = ["swift","oc","oc"]//集合自动去重,即集合中的元素是唯一的

    //

    //var emptySet1:Set<Int> = []

    //var emptySet2 = Set<Double>()

    //

    //var vowels = Set(["A","E","I","O","U"])

    //var skillsOfB:Set = ["HTML","CSS"]

    //

    ////基本方法

    //skillsOfA.count

    //

    //let set:Set<Int> = [2,2,2,2]

    //set.count

    //

    //skillsOfA.isEmpty

    //emptySet1.isEmpty

    //

    //let e = skillsOfA.first

    //skillsOfA.contains("swift")

    //

    //for skill in skillsOfB {

    //    print(skill)

    //}

    //

    //let setA = [1,2,3]

    //let setB = [3,2,1]

    //

    //setA == setB//无序,没有重复的元素

     

    //集合的相关操作

    var skillsOfA: Set<String> = ["swift","OC"]

    var skillsOfB: Set<String> = ["HTML","CSS","Javascript"]

    var skillsOfC: Set<String> = []

     

    skillsOfC.insert("swift")

    skillsOfC.insert("HTML")

    skillsOfC.insert("CSS")

     

    skillsOfC.insert("CSS")

     

    ////删除

    //skillsOfC.remove("CSS")

    //skillsOfC

    //skillsOfC.remove("Javascript")

    //skillsOfC

    //

    //if let skill = skillsOfC.remove("HTML") {

    //    print("HTML is Removed")

    //}

    //

    //skillsOfC.removeAll()

     

    //并集 union  unionInPlace

    skillsOfA.union(skillsOfC)//不改变skillsOfA

    skillsOfA

     

    //skillsOfA.formUnion(skillsOfC)//改变skillsOfA

    //skillsOfA

     

    //交集

    skillsOfA.intersection(skillsOfC)

     

    //减法

    skillsOfA.subtract(skillsOfC)

    skillsOfC.subtract(skillsOfA)

     

     

     

    //异或

     

     

    skillsOfA.union(["java","android"])

     

    var skillsOfD:Set = ["swift"]

     

    skillsOfD.isSubset(of: skillsOfA)

    skillsOfD.isStrictSubset(of: skillsOfA)

     

    skillsOfA.isSuperset(of: skillsOfD)

     

     

    //总结,  选择合适的数据结构

    //数组:有序

    //集合:无序,唯一性,提供集合操作,快速查找

    //字典:键-值数据对

     

     

     

     

     

     

     

  • 相关阅读:
    JavaScript可以做嵌入式开发了
    将指定字符串按指定长度进行剪切
    ASP.NET MVC Controller向View传值的几种方式
    SqlServer将数据库中的表复制到另一个数据库
    PAYPAL 支付,sandbox测试的时候遇到异常:请求被中止: 未能创建 SSL/TLS 安全通道,以及解决方法。
    c# ref与out的区别
    浅谈Tuple之C#4.0新特性
    CentOS7系列学习--修改用户密码
    关于页面多个ajax请求阻塞的问题
    关于overflow的学习
  • 原文地址:https://www.cnblogs.com/zrr-notes/p/6027639.html
Copyright © 2011-2022 走看看