/**
         * 1.变量
         */
        let count1 = 11;
        print(count1);
        
        var count2 = 22;
        print(count2);
        count2 = 33;
        print(count2);
        


        /**
         * 2.命名规则
         * swift中可以使用几乎任何字符来作为变量和变量名,包
         * 括Unicode.但是不能包含数学符号.箭头.无效的unicode.横线-.制
         * 表符,且不能以数字开头.
         */
        let 啦啦 = "学习IOS";
        let 🐶 = "汪";
        let cat = "🐼";
        print(啦啦,🐶,cat);
        

 


        /**
         * 3.类型别名
         * 给Int取一个别名
         */
        typealias NSInteger = Int;
        var value:NSInteger = 45;
        value = 666;
        print(value);
        
        


        /**
         * 4.布尔类型
         */
        let dogIsAnimation = true;
        let animationIsDog = false;
        print("狗是动物吗?%@",dogIsAnimation);
        print("动物是狗吗%@",animationIsDog);
        
        
        
        
        /**
         * 字符串
         */
        let label = "the width is";
        let width = 62;
        var labelWidth = label + String(width);//swift不支持隐式转换,需要显示类型转换;
        labelWidth += "!";
        print(labelWidth);
        
        
        
        
        
        /**
         * 字符串格式化使用/(item)
         */
        let apples = 6;
        let oranges = 8;
        let appleSumary = "我有\(apples)个苹果";
        let fruitSumary = "我有\(apples + oranges)个水果";
        print(appleSumary,fruitSumary);
        
        
        
        
        
        
        
        /**
         * 数组
         */
        let array1:[Int] = [1,2,3]
        print(array1);
        
        let array2:[String] = ["4","5","6"];
        print(array2);
        
        var array3 = ["7","8","9"];
        print(array3);
        
        array3 .append("10");
        print(array3);

        var array4 = [Int]();
        array4.append(11101);
        print(array4);
        
        var array5 = Array <String>();
        array5.append("正规的写法");
        print(array5);
        
        var array6 : [Int];
        array6 = [];
        array6.append(12);
        print("array6 \(array6)");
        
        let array7 = [Int](repeating: 520, count: 5)
        for temp in array7 {
            print(temp)
        }
        print(array7)
        
        let array8 = Array(repeating: "成功", count: 5)
        print(array8)
        /***************************/
        // 数组的基本操作
        var array_1 = Array<Int>();
        array_1=[1,2,3,4,5,6,7];
        // 1、 数组元素的访问。下标方法
        print(array_1[2]);
        // 2、获取数组的个数
        print(array_1.count)
        // 3、判断 数组 是否包含某个元素
        print(array_1.contains(2))
        // 4、判断数组是否为空
        // 第一中
        if array_1.count == 0 {
            print("数组为空")
        }else{
            print("数组不为空")
        }
        // 第二种
        if array_1.isEmpty {
            print("数组为空")
        }else{
            print("数组不为空")
        }
        //5、修改数组的元素
        // 第一种
        array_1[2] = 520
        print(array_1)
        array_1[1...3] = [110 ,119, 121] // 修改 数组 1 -- 3 的元素
        
        print(array_1)
        // 6、 数组的遍历
        for temp in  array_1 {
            print(temp)
        }
        
    
        /**
         * 字典
         */
        let dic1=[1:1,2:12,3:32,4:16,5:15]
        let dic2:Dictionary<String,Float>=[:]
        let dic3=Dictionary<String,Float>()
        let dic4=[String : String]()
        print(dic1,dic2,dic3,dic4)
        
        //1 读取字典元素
        var test1Dic=["key1":"你好","key2":"Swift","key3":"正在学习","key4":"字典","key5":"取值",]
        
        let test1Str=test1Dic["key2"]
        print("\(String(describing: test1Str))")
        
        //此处取字典中未定义的键 不会报错,取出来的值为nil
        let test1Str2=test1Dic["key"]
        print("\(String(describing: test1Str2))")
        
        
        
        //2 获取字典元素的个数
        
        print(test1Dic.count)
        
        //3 增加字典的元素
        
        test1Dic["key"]="test"
        print(test1Dic)
        
        //4 删除字典中的元素
        
        test1Dic.removeValue(forKey: "key1")
        print(test1Dic)
        
        //5 修改字典中的元素
        
        // 5.1 直接修改
        test1Dic["key"]="testkey"
        
        // 5.2 使用 updateValue
        let oldStr=test1Dic.updateValue("testkeytest", forKey: "key")
        print(oldStr as Any)
        print(test1Dic)
        
        //6 遍历
        //6.1遍历所有的键值对
        
        for (key,value) in test1Dic{
            print("key:\(key) value:\(value)")
        }
        
        //6.2 遍历所有的键
        for test6Str in test1Dic.keys{
            print(test6Str)
        }
        
        //6.2 遍历所有的值
        for test6Str2 in test1Dic.values{
            print(test6Str2)
        }
        
        //7 字典转数组
        //7.1 将所有的键转为数组
        let test7Keys=Array(test1Dic.keys)
        print(test7Keys)
        
        //7.1 将所有的值转为数组
        let test7Values=Array(test1Dic.values)
        print(test7Values)
        
        
        var dic122=[1:1,2:12,3:32,4:16,5:15]
        dic122.updateValue(999, forKey: 2222);
        print(dic122);
        
        
        /**
         * 元组可以将任意数据类型组装成一个元素
         * 元组在作为函数返回值得时候特别适用,可以为函数返回更多的信息
         */
        //元组是Objective-C中没有的数据类型,与数组类似,都是表示一组数据的集合,但与数组不同,它的特点是:
        
        //元组的长度任意
        //元组中的数据可以是不同的数据类型
        
        //元组的定义很简单,用小括号括起来,然后以逗号隔开就可以了,如
        let userInfo = ("Bannings" ,true, 22)
        let name11 = userInfo.0;
        //但是这样并不方便,也不直观,那么可以用下面这种方式来访问:
        let (name, isMale, age) = userInfo
        print(name,isMale,age,name11);
        //把已知的userInfo赋给一个全是变量名组成的新的元组,那么就能以变量名去访问元组中的数据了。
        //还有另外一种方法也能以变量名的方式去访问元组中的数据,那就是在元组初始化的时候就给它一个变量名:
        let userInfo1 = (name:"Bannings1" ,isMale:true, age:221)
//        userInfo1.name       //Bannings
//        userInfo1.isMale     //true
//        userInfo1.age        //22
        print(userInfo1.name,userInfo1.isMale,userInfo1.age);
        //可变元组和不可变元组
        //用var定义的元组就是可变元组,let定义的就是不可变元组。不管是可变还是不可变元组,元组在创建后就不能对其长度进行增加和删除之类的修改,只有可变元组能在创建之后修改元组中的数据:
        var userInfo2 = (name:"Bannings" ,true, age:22)//<span style="white-space:pre">    </span>//定义可变元组
        userInfo2.name = "newName"
           //newName
        print(userInfo2.name);
        let userInfo3 = (name:"Bannings" ,true, age:22)//<span style="white-space:pre">   </span>//定义不可变元组
        print(userInfo3);
//        userInfo1.name = "newName"  //报错,不可修改
        //需要注意的是,可变元组虽然可以修改数据,但却不能改变其数据的数据类型:
        var userInfo4 = (name:"Bannings" ,true, age:22)
//        userInfo4.name = 1   //报错
        print(userInfo4);
        
        
        
        /**
         * 可选类型(optional)
         */

posted on 2017-11-20 22:28  代码少年_夕阳  阅读(206)  评论(0编辑  收藏  举报