• Swift语法基础入门二(数组, 字典, 字符串)


    Swift语法基础入门二(数组, 字典, 字符串)

    数组(有序数据的集) *格式 : [] / Int / Array()

    • let 不可变数组
    • var 可变数组 注意:
    • 不需要改变集合的时候创建不可变集合是很好的实践。如此 Swift 编译器可以优化我们创建的集合。
    // 声明数组
    let arr1: Array<Int>
    // 推荐
    let arr2: [Int]
    arr2 = [10, 20] // 先定义再初始化
    //arr2 = [30, 40]
    
    var arr3: [Double]
    arr3 = [10.1, 10.2]
    arr3 = [8.1, 9.0]
    
    
    // 定时的同时初始化
    let arr4 = [10, 20, 30]
    var arr5 = [10.1, 10.2, 10.3]
    
    // 取值
    arr5[0]
    
    // 遍历
    for item in arr5 {
        print(item)
    }
    
    for (xxx, ooo) in arr5.enumerate() {
        print(xxx)
        print(ooo)
    }
    
    // 添加
    arr5.append(9.1)
    
    // 删除
    arr5.removeAtIndex(1)
    arr5
    
    arr5.removeAll()
    
    // 合并
    var arr6 = [1, 3, 5]
    var arr7 = [2, 4, 6]
    //arr6 += arr7
    arr6 += arr7[0..<2]
    
    
    // 初始化一个带默认值的数组
    var arr8 = Array(count: 5, repeatedValue: 0)
    
    
    //数组如何分配存储空间, 按照2的倍数来分配
    var arr9 = [Int]()
    arr9.capacity
    arr9.append(10)
    arr9.capacity
    arr9.append(11)
    arr9.capacity
    arr9.append(12)
    arr9.capacity
    arr9.append(13)
    arr9.capacity
    arr9.append(15)
    arr9.capacity
    

    字典(无序数据集)

    • Swift 的Dictionary类型被桥接到Foundation的NSDictionary类。
    • 格式 [:] / Dictionary()
    • let 不可变字典
    • var 可变字典

    注意:

    • 一个字典的Key类型必须遵循Hashable协议
    // 声明字典
    let dict: [String: Double]
    
    // 初始化字典
    dict = ["score": 99.9]
    //dict = ["age": 30]
    
    // 定义空字典
    let dict1 = [String: Int]()
    
    // 定义有值的字典
    // [String : NSObject] 类型是做iOS开发中最最常见的类型
    var dict2 = ["name": "lnj", "age": 31, "score": 59.5]
    
    // 获取
    dict2["name"]
    
    // 增加
    // 只要字典中没有对应的key就会新增
    dict2["rank"] = 1
    dict2
    
    // 删除
    dict2.removeValueForKey("rank")
    dict2
    
    // 遍历
    for key in dict2.keys
    {
        print(key)
    }
    
    for value in dict2.values
    {
        print(value)
    }
    
    for (key, value) in dict2
    {
        print(key)
        print(value)
    }
    
    // 合并
    var dict3 = ["name": "lnj", "age": 31]
    var dict4 = ["rank": 1, "score": 99.9]
    for (key, value) in dict4 {
        dict3[key] = value
    }
    dict3
    

    字符串

    • Swift 的String类型与 Foundation NSString类进行了无缝桥接
    • OC语言中的字符串也是以结尾, Swift不是
    • OC中字符串是一个对象, Swift中使用String是一个结构体,效率更高, 支持遍历 注意
    • Swift 的String类型是值类型。 如果您创建了一个新的字符串,那么当其进行常量、变量赋值操作,或在函数/方法中传递时,会进行值拷贝。 任何情况下,都会对已有字符串值创建新副本,并对该新副本进行传递或赋值操作
    let str = "xmglnj"
    for ch in str.characters {
        print(ch)
    }
    
    // 拼接
    var str1 = "xmg"
    var str2 = "nx"
    str1 += str2
    str1
    
    // 插值
    let name = "lnj"
    let age = 31
    let result = "name = (name), age = (age)"
    
    
    // 格式化
    //01.png
    //02.png
    //...
    //10.png
    for i in 0...5
    {
        let name = String(format: "%02d.png", arguments: [i])
        print(name)
    }
    
    // 截取
    let str3 = "com.520it.xmg"
    // 截取xmg
    // 注意: Swift中截取字符串的方法, 接收的参数和OC中不一样
    // 前期, 为了大家开发方便, 建议转换为NSString之后再截取
    // 转换
    let str4 = str3 as NSString
    let result2 = str4.substringFromIndex(10)
    
    //Swift字符串中的 .startIndex ,用于获取字符串中第一个字符的位置
    //Swift字符串中的 .endIndex, 用于获取字符串中最后一个字符串`下一位`的位置
    let result3 = str3.substringFromIndex(str3.endIndex.advancedBy(-3))
    let result4 = str3.substringFromIndex(str3.startIndex.advancedBy(10))
    

    end

  • 相关阅读:
    cocos2dx-lua捕获用户touch事件的几种方式
    Java并发编程之闭锁CountDownLatch简单介绍
    opencv视频播放
    完全备份、差异备份以及增量备份的区别
    如何实现文件增量同步——算法
    Oracle提示“资源正忙,需指定nowait”的解决方案
    oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT
    一次oracle大量数据删除经历
    rownum的使用-分页
    sql语句分页多种方式ROW_NUMBER()OVER
  • 原文地址:https://www.cnblogs.com/l110/p/5143836.html
Copyright © 2020-2023  润新知