zoukankan      html  css  js  c++  java
  • 【Swift】学习笔记(四)——设置(Collection)

    Swift和其他语言也提供了两种类型的集合:数组和字典


    数组:数组用来按顺序存储同样类型的数据,swift规定它是类型安全的,每个数组都有自己的类型也就是其它语言所说的泛型。

    创建数组:

    1、var aa:[String] = ["aa","bb","cc"] 或者 var aa = ["aa","bb","cc"]

    2、var aa = [String]()  //空数组  aa.append("aa") //向aa数组添加一个成员。aa=[]  //清空数组

    3、var a = [Double](count:5,repeatedValue:0.0)  //创建一个5个大小的数组,而且都赋值为0.0   ,因为swift类型判断的特性。还能够不用指定类型。var a = Array(count:5,repeatedValue:0.0)只是不推荐。

    4、var a = [Double](count:5,repeatedValue:0.0);  var b = [Double](count:5,repeatedValue:5.5); var c = a + b; //将两个数组项合并到一个数组中去,类型会从相加的数组中判断出来。

    数组的訪问和改动:

    数组的操作莫过于加项,改动项,删除项。遍历项等操作。

    var aa = [String]()

    推断数组是否为空。aa.isEmpty() 

    加到数组末尾:aa.append("test")  或者 aa += ["test1"]  或者  aa+=["test2","test3"]

    插入到某一个位置:aa.insert("test2",atIndex:0)


    获取某一项:下标  var tt = aa[0]


    改动: aa[0] = "new test" 还能够批量改  aa[4...6] = ["a","b"]


    删除项:var removeItem = aa.removeAtIndex(0) 被移除的项会返回出来。

    删除最后一个var removeItem = aa.removeLast()


    遍历能够用for in循环。这个到for循环的时候再嘻嘻讨论。从上面append方法就能够看出数组是可变的。当然定义为let类型就不可变了。。


    字典,也就是键值对。

    无序存储  Dictionary<KeyType, ValueType>   KeyType的唯一限制就是可哈希的,这样能够保证它是独一无二的。全部的 Swift 基本类型(比如String,Int, Double和Bool)都是默认可哈希的


    创建:1、通过字面量创建 var aa:Dictionary<String, String> = ["a":"aaa","b":"bbb"]   当然也可省略dictionary 写成 var aa =  ["a":"aaa","b":"bbb"] 

    2、创建一个空字典 var aa =  Dictionary<String, String> ()  清空数据 aa = [:]   //比数组多了一个:号


    读取:

    1、字典大小  aa.count  count属性

    2、下标获取  var tmp = aa["a"]


    改动:

    1、下标改动 aa["a"] = "abc"   //a这个key存在则改动,不存在则新增。

    非常智能

    2、方法改动   var oldValue = aa.updateValue("bbccdd",forKey:"b")


    移除

    1、用nil进行移除: aa["a"] = nil 就把key为a的移除了

    2、方法移除: var oldValue = aa.removeForKey("a")  a这个key和存在的数据被移除了


    遍历也是用for in循环。在for循环中讨论.


    swift不像oc那样只在C语言的基础上外包一层面向对象,它真的很灵活也和其它的编程语言语法很相似。要使用它easy的。

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    ASP.NET 生命周期(原文翻译)
    JSON 小记
    Unity5-ABSystem(二):AssetBundle导出
    Unity5-ABSystem(一):AssetBundle原理
    《Unity 3D游戏客户端基础框架》概述
    Unity中的资源管理
    Unity中的优化技术
    深入浅出聊Unity3D项目优化:从Draw Calls到GC
    Incremental builds for IL2CPP
    Unity3D图像后处理特效——Depth of Field 3.4
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4660389.html
Copyright © 2011-2022 走看看