zoukankan      html  css  js  c++  java
  • Swift 数组,字典,结构体,枚举

    1.数组

    let types = ["none","warning","error"]//省略类型的数组声明
            var menbers = [String]()//声明空数组
            menbers.append("six")//添加元素
            menbers += ["seven"]//添加元素
            menbers.insert("one", at: 0)//指定位置添加元素
            menbers[0] = "message"//通过下标修改元素
            menbers[0...2] = ["message","banana","orange"]//通过区间修改元素
            print(types)
            print(menbers)
            print(menbers.count)//数组个数
            print(menbers.isEmpty)//数组是否为空
            menbers.swapAt(1, 2)//元素之间交换
            //menbers.remove(at: 2)//删除某一个元素
            //menbers.removeLast()//删除最后一个元素
            let addStringArr = types + menbers
            //数组遍历
            for value in addStringArr {
                print("(value)")
            }
            //元祖遍历
            for (index,value) in menbers.enumerated() {
                print("索引:(index) 数据:(value)")
            }
            
            //过滤数组元素
            let newTypes = types.filter { (item) -> Bool in
                return item.count < 6
            }
            print(newTypes)
            
            //创建包含100个元素的数组
            let items = Array(0..<100).map{ "条目($0)"}
            print(items)
    //2.0 字典
            //var emptyDict = [String : Int]()//空字典
            //声明一个字典
            var myDict = ["name":"hangge","url":"hangge.com"]
            myDict["address"] = "china" //添加/修改字典
            myDict.removeValue(forKey: "name")//删除某一个key
            myDict["name"] = nil //删除某一个key值
            //字典的key,value
            print(myDict.keys,myDict.values)
            //遍历字典
            for (key,value) in myDict {
                print("(key):(value)")
            }
            //顾虑字典元素
            let dict2 = myDict.filter { (item) -> Bool in
                return item.value.count < 7
            }
            print(dict2)
            
            //通过元祖创建字典
            let duplicatesArray = [("Monday",30),("Tuesday",25),("Wednesday",27),("Sunday",29)]
            let dic = Dictionary(duplicatesArray, uniquingKeysWith: min)
            print(dic)
            
            //合并字典
            var dict1 = ["one":10,"two":20]
            //merge 合并
            let tuples = [("one",5),("three",30)]
            dict1.merge(tuples, uniquingKeysWith: min)
            print("dict:(dict1)")
            //merging 合并
            let dict3 = dict1.merging(tuples, uniquingKeysWith: min)
            print("dict2:(dict3)")
            
            //字典不存在时,指定默认值
            let dict4 = ["apple":1,"banana":2]
            var orange : Int
            if let value = dict4["orange"] {
                orange = value
            }else {
                orange = 0
            }
            let longan = dict4["longan",default:0]
            
            print(orange)
            print(longan)
    //创建一个结构体
            struct BookInfo {
                var id : Int = 0
                var name : String = "default"
                var authord : String = "default"
            }
            var book1 : BookInfo //默认构造器创建结构体
            var book2 : BookInfo = BookInfo.init(id: 0021, name: "航哥", authord: "hanggge")
            book1 = book2
            book2.id = 1234
            print(book1,book2)
            
            //枚举
            enum Compasspoint {
                case north
                case south
                case east
                case west
            }
            let directionTohead = Compasspoint.east
            print(directionTohead)
            
            enum Planet : Int {
                case mercury = 1
                case venus = 2
                case earth = 3
            }
            let earthsorder = Planet.earth
            print(earthsorder)
            
            enum Direction {
                case up
                case down
                func description() -> String {
                    switch self {
                    case .up:
                        return "向上"
                    case .down:
                        return "向下"
                    }
                }
            }
            print(Direction.up.description())
    //默认构造器
    class Student{
        var name : String = ""
        var number : Int = 0
    }
    //自定义构造函数
    class Person{
        //雷属性
        var name:String
        var age:Int
        //类构造函数
        init(newName:String,newAge:Int) {
            self.name = newName
            self.age = newAge
        }
        //实例函数
        func say() -> String {
            return "我叫MT(name)"
        }
    }
    class People {
        //普通属性
        var firstName:String = ""
        var lastName:String = ""
        var nickName:String = ""
        
        //计算属性
        var fullName:String {
            get {
                return nickName + " " + firstName + " " + lastName
            }
        }
        //带属性监视器普通属性
        var age:Int = 0 {
            //属性变化前
            willSet{
                print("will set an new value(age) to age")
            }
            didSet{
                print("age file change form (oldValue) to (age)")
                if age < 10 {
                    nickName = "Little"
                }else{
                    nickName = "Big"
                }
            }
        }
        func toString() ->String{
            return "Full name (fullName) +_ age(age)"
        }
    }
    /*结构体运用*/
    struct Account {
        var amount:Double = 0.0
        var owner:String = ""
        //修饰静态方法
        static var interestRate:Double = 0.668
        static func interestBy(amount:Double) ->Double{
            return interestRate * amount
        }
    }
    class Account_class {
        var amount:Double = 0.0
        var owner:String = ""
        
        class var staticProp: Double {
            return 0.668
        }
        class func interestBy(amount:Double) ->Double{
            return staticProp * amount
        }
    }
  • 相关阅读:
    JS解析json数据(如何将json字符串转化为数组)
    c/c++学习笔记(11)
    c/c++学习笔记(14)
    c/c++学习笔记(9)
    c/c++概念整理1
    c/c++学习笔记(10)
    c/c++学习笔记(2)
    《c和指针》笔记3
    c/c++学习笔记(3)
    c/c++学习笔记(13)
  • 原文地址:https://www.cnblogs.com/edensyd/p/9414443.html
Copyright © 2011-2022 走看看