• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >swift > Swift教程之集合类型详解

Swift教程之集合类型详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了swift教程,ios swift教程,swift教程pdf,swift语言教程,swift视频教程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Swift 提供两种集合类型来存储集合,数组和字典。数组是一个同类型的序列化列表集合。字典是一个能够使用类似于键的唯一标识符来获取值的非序列化集合。

在Swift中,数组和字典的键和值都必须明确它的类型。这意味这数组和字典不会插入一个错误的类型的值,以致于出错。这也意味着当你在数组和字典中取回数值的时候能够确定它的类型。
Swift 使用确定的集合类型可以保证代码工作是不会出错,和让你在开发阶段就能更早的捕获错误。
note:
Swift的数组 储存不同的类型会展示出不同的行为,例如变量,常量或者 函数和方法。更多的信息参见Mutability of Collections and Assignment 和 Copy Behavior for Collection Types.

1、数组

数组是储存同类型不同值的序列化列表。同样的值可以在数组的不同位置出现多次。

Swift数组是储存确定的值,这个Objective-C中的NSArray和NSMutableArray类是有区别的。因为它们是储存各种的对象,而且并不提供返回任何有关对象的具体信息。在Swift中,无论是确定的声明,还是隐式的声明,数组是非常确定它自身是储存什么样的类型,而且,它并不一定要求储存的是类对象。所以Swift数组是类型安全的,因为它一直都确定它自身所能包含的值。

数组的简略语法

定义数组的完整写法是Array<SomeType>。其中SomeType是你想要包含的类型。你也可以使用类似于SomeType[]这样的简略语法。虽然这两种方法在功能上是相同的。但是我们更推荐后者,而且它会一直贯穿于本书。

数组实量(Array Literals)

你可以用一个数组实量(Array Literals)来初始化一个数组,它是用简略写法来创建一个包含一个或多个的值的数组。一个数组实量(Array Literals)是由它包含的值,“,”分隔符 已经包括以上内容的中括号对“[]”组成:

[value 1, value 2, value 3]
</div>
下面的例子创建一个叫shoppinglist,储存字符串(String)类型的数组。

var shoppingList: String[] = ["Eggs", "Milk"]
// 使用两个初始化参数来初始化shoppingList
</div>
shoppinglist变量被定义为字符串(String)类型的数组,写作String[]。因为这个数组被确定为字符串类型(String),所以它只能储存字符串(String)类型的值。在这里,用两个字符串类型的值(”Eggs” and “Milk”)和数组实量(Array Literals)的写法来初始化shoppingList数组。

注意

shoppingList数组是被定义为一个变量(使用var 标识符)而不是常量(使用let 标识符),所以在下面的例子可以直接添加元素。

在这个例子中,数组实量(Array Literals)只包含两个字符串类型的值,这符合了shoppingList变量的定义(只能包含字符串(String)类型的数组),所以被分配的数组实量(Array Literals)被允许用两个字符串类型的值来初始化。

得益于Swift的类型推断,当你用相同类型的值来初始化时,你可以不写明类型。初始化shoppingList可以用下面这个方法来代替。

var shoppingList = ["Eggs", “Milk"]
</div>

因为数组实量(Array Literals)中所有的值都是同类型的,所以Swift能够推断shoppingList的类型为字符串数组(String[])。

读取和修改数组

你可以通过方法和属性,或者下标来读取和修改数组。

通过只读属性count来读取数组的长度;

println("The shopping list contains \(shoppingList.count) items.")
// prints "The shopping list contains 2 items.”
</div>
通过一个返回布尔类型的isEmpty属性检查数组的长度是否为0

if shoppingList.isEmpty {     println("The shopping list is empty.")
} else {     println("The shopping list is not empty.")
}
// prints "The shopping list is not empty."
</div>
在数组末尾增加一个元素可以通过append方法

shoppingList.append("Flour")
// shoppingList 现在包含3个元素
</div>
甚至,还可以用(+=)操作符来把一个元素添加到数组末尾

shoppingList += "Baking Powder"
// shoppingList 现在包含4个元素
</div>
你也可以用(+=)操作符来把一个数组添加到另一个数组的末尾

shoppingList += ["Chocolate Spread", "Cheese", "Butter"]
// shoppingList 现在包含7个元素
</div>
从数组中取出一个值可以使用下标语法。如果你知道一个元素的索引值,你可以数组名后面的中括号中填写索引值来获取这个元素

var firstItem = shoppingList[0]
// firstItem 等于 “Eggs"
</div>
注意,数组的第一个元素的索引值为0,不为1,Swift的数组总是索引0;

你可以使用下标语法通过索引修改已经存在的值。

shoppingList[0] = "Six eggs"
//列表中的第一个值等于"Six eggs" 而不等于 “Eggs"
</div>
你可以使用下标语法一次性改变一系列的值,尽管修改的区域远远大于要修改的值。在下面的雷子中, 替换掉 “Chocolate Spread”, “Cheese”,”Butter”,”Bananas”,”Apples”:

shoppingList[4...6] = ["Bananas", "Apples"]
// shoppingList 现在包含6个元素
</div>
注意,你不能使用下标语法在数组中添加一个元素,如果你尝试使用下标语法来获取或者设置一个元素,你将得到一个运行时的错误。尽管如此,你可以通过count属性验证索引是否正确再使用它。当count为0时(意味着数组为空),则count-1超出了索引的有效范围,因为数组的索引总是从0开始。

在一个特定的索引位置插入一个值,可以使用insert(atIndex:)方法

shoppingList.insert("Maple Syrup", atIndex: 0)
// shoppingList 现在包含7个元素
// "Maple Syrup" 在数组的第一位
</div>
这里调用insert方法指明在shoppingList的索引为0的位置中插入一个新元素 “Maple Syrup”

同理,你可以调用removeAtIndex方法移除特定的元素。这个

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Swift 教程
  • iOS开发中Swift 指纹验证功能模块实例代码
  • swift在IOS应用图标上添加提醒个数的方法
  • Swift自定义iOS中的TabBarController并为其添加动画
  • Swift操作Quartz 2D进行简单的绘图与坐标变换的教程
  • 使用Swift实现iOS App中解析XML格式数据的教程
  • 用Swift构建一个简单的iOS邮件应用的方法
  • Swift教程之类的析构详解
  • Swift教程之继承详解
  • Swift教程之下标详解

相关文章

  • 2017-05-28解决Android Studio安装后运行出错dose not...和Internal error...
  • 2017-05-28深入解析Swift编程中枚举类型的相关使用
  • 2017-05-28Swift语言中的一些访问控制设置详解
  • 2017-05-28Swift数组详细用法解析
  • 2017-05-28Swift快速集成下拉刷新和上拉加载更多示例代码
  • 2017-05-28iOS UITableView展开缩放动画实例代码
  • 2017-05-28超全面的Swift编码规范(推荐)
  • 2017-05-28Linux centos7环境下jdk安装教程
  • 2017-05-28iPhone与iWatch连接、控制、数据传递(Swift)的方法
  • 2017-05-28基于SSM框架之个人相册示例代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Swift实现堆排序算法的代码示例
    • Swift中的Access Control权限控制介绍
    • 探讨Swift数组和字典
    • Swift 3.0基础学习之类与结构体
    • 使用Swift实现iOS App中解析XML格式数据的教程
    • Mybatis接口式编程的原理
    • Swift使用WKWebView在iOS应用中调用Web的方法详解
    • Swift 下标脚本
    • 如何设计一个秒杀系统
    • iOS开发中Swift 指纹验证功能模块实例代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有