Object-C--->Swift之(五)数组和字典

简介: 数组Swift的数组继承了C、Object-C的功能,目前并没有独特的新功能的添加。声明数组泛型语法 Array var myArray:Array简化语法[类型] var myArray:Array[Int]创建数组结构体,并将数组赋值使用Array的构造器创建数组。

数组

Swift的数组继承了C、Object-C的功能,目前并没有独特的新功能的添加。

声明数组

泛型语法

 Array<类型>
 var myArray:Array<Int>

简化语法

[类型]
var myArray:Array[Int]

创建数组结构体,并将数组赋值

使用Array的构造器创建数组。

myArray=Array<Int>()
myArray=Array<Int>(count: 100, repeatedValue: 0)

使用简化语法创建数组。

var myArra:[Int]=[1,2,4,5]
    myArray=[1,2,4,5]

获取数组值

   直接获取
    print(myArray[1])
   通过for语句访问
     for var i=0;i < myArra.count;i++
    {
     print(myArra[i])
    }
    通过for-in遍历数组
      for  myArr in myArray
   {
     print(myArr)
   }

如果我们前面申请的是可变变量,则数组可以进行修改

添加元素

  myArray.append(6)
    myArray+=[7] 

插入元素(注意插入元素不能超过数组长度,否则会崩溃的)

myArray.insert(3, atIndex: 2)

删除数组

   myArray.removeAtIndex(2)//删除下标为2的元素
    myArray.removeLast()//删除最后一个元素
    myArray.removeRange(1...3)//删除第一个下标到第三个下标的元素
    myArray.removeAll()//删除全部元素

数组和范围包相结合

    print(myArray[1...3])
    获取下标1到3位置的数据

数组内部复制机制

在Swift中数组是值类型的,值类型赋值或传递过程中会复制副本,进行赋值或传递参数,只是原来数据的副本。

    例如:
    var names=["张三","李四","王麻子"];
    var copy=names;
    copy[1]="李鬼"
    print(names)
    print(copy)

    输出:
   ["张三", "李四", "王麻子"]
   ["张三", "李鬼", "王麻子"]  

字典

字典类型与Object-C相比操作上没有太大的变化,依旧是具有映射关系的数据类型,key和value组成了一个键值对,一对一的关系,可以为任意类型,但字典中的数据是无序存储的,它整合了Object-C里面NSSet的功能

声明字典

泛型语法

 Dictionary<key 类型,value 类型>
 var celebrity :Dictionary<String,String>

简化语法

 [key 类型:value 类型]
var celebrity:[String:String]

创建字典结构体,并将字典赋值

使用Dictionary的构造器创建数组。

 celebrity:Dictionary<String,String>()

使用简化语法创建字典

 var celebrity=["丘吉尔":"英国","毛泽东":"中国大陆","马英九":"中国台湾","乔布斯":"美国"];

获取字典值

直接获取

print(celebrity["丘吉尔"])//输出    Optional("英国")
let coun: String? = celebrity["丘吉尔"]
    if coun != nil
    {
     print("\(coun!)") //输出 英国
    }

如果我们前面申请的是可变变量,则字典可以进行修改

添加键值对

celebrity.updateValue("中国", forKey: "博主")

修改键值对

 celebrity["丘吉尔"]="中国"

删除键值对

  • 删除指定的:

    celebrity.removeValueForKey("博主")
    
  • 删除全部的:

    celebrity.removeAll()
    

字典内部复制机制

   在Swift中字典同数组一样都是值类型的,值类型赋值或传递过程中会复制副本,进行赋值或传递参数,只是原来数据的副本。  
相关文章
|
7月前
|
存储 Swift
在Swift编程语言中,字典(Dictionary)
在Swift编程语言中,字典(Dictionary)
78 3
|
7月前
|
存储 安全 Swift
在Swift中,数组(Array)
在Swift中,数组(Array)
60 3
|
Swift
22 Swift中的字典
Swift中的字典
65 0
|
Swift 索引
18 在Swift中创建一个数组
在Swift中创建一个数组
341 0
|
24天前
|
存储 Swift iOS开发
Swift 数组
10月更文挑战第27天
23 3
|
24天前
|
存储 Swift iOS开发
Swift 字典
10月更文挑战第27天
22 2
|
7月前
|
存储 安全 Swift
【Swift开发专栏】Swift中的集合类型:数组、字典与集合
【4月更文挑战第30天】本文探讨Swift的三种内置集合类型:数组、字典和集合。数组是有序元素集合,支持动态大小调整和类型安全;字典是无序键值对,适用于快速查找;集合是无序不重复元素集合,适合检查元素存在性和集合运算。理解这些特性和用法能提升Swift编程效率。
69 1
|
4月前
|
JSON 数据格式 Python
【python】解决json.dump(字典)时报错Object of type ‘float32‘ is not JSON serializable
在使用json.dump时遇到的“Object of type ‘float32’ is not JSON serializable”错误的方法,通过自定义一个JSON编码器类来处理NumPy类型的数据。
154 1
|
6月前
|
JSON 关系型数据库 MySQL
MySQL中GROUP_CONCAT与JSON_OBJECT、GROUP BY的巧妙结合:打造高效JSON数组汇总
MySQL中GROUP_CONCAT与JSON_OBJECT、GROUP BY的巧妙结合:打造高效JSON数组汇总
171 1
|
7月前
|
前端开发 Java 编译器
Object c/swift,java,c/c++在32位和64位各个平台上基本数据类型 所占有的字节数
Object c/swift,java,c/c++在32位和64位各个平台上基本数据类型 所占有的字节数
50 0