Swift 学习第一天 常量 变量 数组和字典

        /** println 打印 */

        println("hello world")

        /** let 定义常量 不可变 */

        let constNumb = 1

        /** var 定义变量 可变 */

        var numb: Int = 8

        

        numb = 10

        println(numb)

        

        var myName : String = "赵楠"

        let myAge : Int = 24

        myName = "我的名字是赵楠"

        /** 字符串拼接 */

        var myInfo = myName + String(myAge)

        

        println(myInfo)

        

        let myHome : String = "我的家乡在山东曲阜,读取\(numb)秒后进行操作"

        

        println(myHome)

        

        /** 创建数组 */

        let objectArray = ["1", "2", "3", "4", "5"]

        

        println(objectArray)

        /** 可变数组 */

        var objectMutArray = ["1", "2", "3", "4", "5"]

        objectMutArray.removeLast()

        

        println(objectMutArray)

        

        /** 创建字典 */

        let objectDic = [

            "key": "value",

            "key2": "value2"

        ]

        println(objectDic["key"])

        

        /** 创建可变字典 */

        var objectDict = [

            "key1": "value1",

            "key2": "value2",

            "key3": "value3"

        ]

        /** 新添元素 */

        objectDict["key4"] = "value4"

        /** 删除某个元素 */

        objectDict.removeValueForKey("key1")

        

        println(objectDict)

        

        /** 创建空的数组 */

        var emptArray = []

        println(emptArray.classForCoder)

        var emptDic = [:]

        println("该字典的class---",emptDic.classForCoder)

        

        let itemsArray = ["a", "b", "c", "d", "e"]

      

        for item in itemsArray {

            if item == "a"{

                println("当前的参数为a")

            }else{

                println(item)

            }

        }

        

        if itemsArray.count <= 5{

            println("数组元素个数小于或等于5")

        }

        

        /** 类型?可选类型 */

        var isOk : String? = "YES"

        /** 例如 count为字符串 有可能可以转为数字 但是不确定一定是数字 所以可以用类型+ 来定位可选类型 optional Int = Int? 可选类型 如果不是该类型则会返回的是nil */

        let count : String = "10000"

        var countNumb : Int? = count.toInt()

        println(countNumb)

        let charStr : String = "hello everyOne"

        var intValue : Int? = charStr.toInt()

        println(intValue)

        

        /** 强制解析 countNumb! 要确认其是否一定有值 */

        if countNumb != nil {

            println("\(count) has an integer value of \(countNumb!)")

        } else {

            println("\(count) could not has an integer value")

        }

        

        /** 可选绑定 使用可选绑定(optional binding)来判断可选是否包含值,如果包含就把值赋给一个临时常量或者变量 */

        if let coutNumber = count.toInt() {

            println("\(count) has an integer value of \(coutNumber)")

        }else{

            println("\(count) could not has an integer value")

        }

        

        /** nil不能用于非可选的常量和变量 如果你声明一个可选常量或者变量但是没有赋值,它们会自动被设置为nil */

        /** Swift nil Objective-C 中的nil并不一样。在 Objective-C 中,nil是一个指向不存在对象的指针。在 Swift 中,nil不是指针——它是一个确定的值,用来表示值缺失。任何类型的可选都可以被设置为nil,不只是对象类型 */

        /** switch 更为强大 不再只限于常数 default 但必须要有default 不再需要break 执行完一个case 就会跳出switch */

        let selectName : String = "A"

        var selectReslut : String

        switch selectName {

            case "A":

            selectReslut = "The One"

            case "B":

            selectReslut = "The Two"

        default :

            selectReslut = "Nothing"

        }

        println(selectReslut)

        

        /** 可使用 for-in 来迭代字典中的每个元素,提供一对名字来使用每个键值对 */

        let numbersDic = [

            "key0" : ["01", "02", "03", "04", "05"],

            "key1" : ["11", "12", "13", "14", "15"],

            "key2" : ["21", "22", "23", "24", "25"]

        ]

        /** [String]() 存放字符串类型的数组 一旦该数组存放了 某一种类型就不能存放其他类型的数据 */

        var keys = [String]()

        for (key, numbs) in numbersDic {

            for numb in numbs {

                /** 新加入数据 */

                keys.append(numb)

                println(numb)

            }

        }

        println(keys)

        

        /** swfit 语言中的数组和字典都是明确类型的 只能存放同一种数据 */

        var array = [["key1": "value1"], ["key2": "value2"], ["key3": "value3"]]

        println(array)

        /** array.isEmpty 判断数组是否为空 YES No 不为空 */

        if array.isEmpty {

            println("该数组为空")

        } else {

            println("该数组不为空")

        }

        

        /** 数组追加元素 append */

        array.append(["key4": "value4"])

        

        array[0] = ["key0": "value0"]

        /** 注意不能数组越界 若后跟参数不足 则自动remov */

        array[1...3] = [["key1": "value1"], ["key2": "value2"], ["key3": "value3"]]

        

        println(array)

        /** extend 追加一个数组 */

        array.extend([["key4": "value4"], ["key5": "value5"], ["key6": "value6"]])

        

        println(array)

        

        /** 指定下表插入元素 */

        array.insert(["keyMin": "valueMin"], atIndex: 0)

        println(array)

        

        /** 删除指定下表的元素 */

        array.removeAtIndex(0)

        println(array)

        

        /** 删除最后一个元素 */

        array.removeLast()

        println(array)

        

        /** 删除所有的元素 keepCapacity 是否保留该数组的容量 默认为false */

//        array.removeAll()

        

        /** 遍历数组 */

        for obj in array{

            println(obj)

        }

        

        /** 通过enumerate方法来遍历数组 index 下表 value */

        for (index, value) in enumerate (array) {

            println("item \(index):\(value)")

        }

        

        var array2 = [String]()

        array2.append("3")

        

        /** 初始化多个相同值的数组 */

        var array3 = [Double](count: 5, repeatedValue: 0.75)

        println(array3)

        

        /** 根据内容自动确认类型的数组 */

        var array4 = Array(count: 6, repeatedValue: 1.5)

        println(array4)

        

        /** 两个数组组合成一个数组 */

        var array5 = array3 + array4

        println(array5)

        

        /** reverse() 翻转数组内元素的顺序 */

        array5 = array5.reverse()

        println(array5)

        

        /** 字典 ==!可以用常量作为 key value 不再必须为对象 */

        var dict = [1: 1]

        println("字典内容为\(dict)")

        

        /** 更新字典中的某个值 并且会返回更改前的 value 如果value 不存在 则返回nil */

        println("并且会返回原来的value 来确认更改是否生效 \(dict.updateValue(2, forKey: 1))")

        

        dict.updateValue(3, forKey: 2)

        

        dict.removeValueForKey(1)

        /** 将某个key对应的value设为nil 也删除该键值对 */

        dict[2] = nil

        

        dict.updateValue(1, forKey: 1)

        

        var dict2 = dict

        

        println("新的字典为---\(dict2)")

        var dict3 = ["a": "1", "b": "2", "c": "3", "d": "4", "e": "5"]

        for obj in dict3{

            println("字典的数据为---\(obj)")

        }

        

        let keyArray = dict3.keys

        let valueArray = dict3.values

        

        println("key---\(keyArray) dict3.keys---\(dict3.keys) value---\(valueArray) dict3.values---\(dict3.values)")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值