swift_007(Swift的Array 数组)
1. 在 Swift 中,如果你用let将数组作为常量来定义,他们就是不可变的,如果用 var 定义为变量他们就是可变的。
作为对比,Foundation 框架中的 NSArray 默认是不可变类型,如果你想在数组创建之后添加、删除或者修改数据,你必须使用可变类 NSMuatbleArray。
2. NSArray 是异质的,那也就意味着他可以包含不同类型的 Cocoa 对象。 Swift 数组是同质的,意味着每一个 Swift 数组都只包含一种类型的对象。
不过,你仍然可以通过将一个类型定义为 AnyObject 类型,使定义的 Swift 数组能够存储可变的 Cocoa 对象类型。
/********************************数 组************************************/
//------------------------------------------------------------------------------
// 1. 数组定义
// 初始化一个空数组
var someArray = [String]()
print("数组---\(someArray)")
// 1> 使用[]可以快速定义数组,每一个数组元素使用 , 分隔
// 2> 数组中的数据元素可以是不同类型
var myArray = ["string1","string2",1,1.2,true,1] as [Any]
//------------------------------------------------------------------------------
// 2. 如果要让数组中存放的数据是同一种数据类型,可以在定义数组时指定其中的数据类型,代码如下:
// 1> array1是一个仅允许存放String的数组
var stringArray:[String]
stringArray = ["str1","str2"]
// 2> array2是一个仅允许存放Int的数组
var intArray:[Int]
intArray = [1,2,3,4,5]
for item in intArray {
print("item---\(item)")
}
print("item---\(intArray[0])")
// 3. 使用泛型创建数组
// 使用泛型定义数组时 <> 中的类型可以指定数组中存放的数据类型
//
// 1> array3是一个仅允许存放AnyObject(Int等)的数组,()会实例化数组
var idArray = Array<Any>()
idArray = ["stringObject",5,6.6]
print(idArray)
// 2> 在实例化数组时,可以使用数组的构造方法,指定数组初始成员
// 实例化一个数组,包含三个 20 的整数
var triArray = Array<Int>(repeating: 20,count:3)
var squaerArray = Array<String>(repeating: "方形",count:4)
//------------------------------------------------------------------------------
// 4. 数组常见操作
// 1> 追加元素
triArray.append(21)
// 2> 插入元素
triArray.insert(19, at: 0)
triArray.insert(10, at: 3)
// 3> 删除指定位置元素
triArray.remove(at: 2)
triArray
// 使用变量记录triArray数组,本质上做了一次内存拷贝,后续对数组的修改,不会影响该变量数组中的内容
var copyTriArray = triArray
var aaa = copyTriArray[3]
var bbb = 100
var c = bbb+aaa
// 4> 删除末尾元素
triArray.removeLast()
triArray
copyTriArray
// 5> 删除所有元素,但保留存储空间
//triArray.removeAll(keepCapacity: true)
// 显示resultNums中的内容,数组中的内容并没有受到影响
copyTriArray
triArray
// 6> 数组合并
// 保存相同数据类型的数组,可以使用 + 直接合并
var mergeArray = triArray + copyTriArray
// 7>如果我们同时需要每个数据项的值和索引值,可以使用 String 的 enumerate() 方法来进行数组遍历。实例如下:
var someStrs = [String]()
someStrs.append("Apple")
someStrs.append("Amazon")
someStrs.append("FaceBook")
someStrs += ["Google"]
for (index, item) in someStrs.enumerated() {
print("在 index = \(index) 位置上的值为 \(item)")
}
swift_007(Swift的Array 数组)相关推荐
- 在Swift中向数组添加元素
本文翻译自:Add an element to an array in Swift Suppose I have an array, for example: 假设我有一个数组,例如: var myA ...
- 解决关于swift的Array repeating 初始化多个对象问题
关于swift的Array repeating 初始化多个对象问题 Array repeating的使用 Array repeating的替代方案 1. 使用 Range 和 map 2. 使用 Ra ...
- JavaScript引用类型之Array数组之强大的splice()方法
splice()方法可以说是Array数组最强大的方法,他的用法很多,主要用法是向数组的中部插入项! 下面是它的用法: arrayObject.splice(index,howmany,element ...
- 列表(list)、元组(tuple)、字典(dictionary)、array(数组)-numpy、DataFrame-pandas 、集合(set)...
一.列表(list) 一组有序项目的集合.可变的数据类型[可进行增删改查] 列表是以方括号"[]"包围的数据集合,不同成员以","分隔. 列表中可以包含任何数据 ...
- Swift 字典转数组
Swift 字典转数组 1.Swift 类型的字典(Dictionary) let dic = ["name":"Tom","gender" ...
- php手册数组函数,PHP - Manual手册 - 函数参考 - Array 数组函数 - array_diff计算数组的差集...
PHP - Manual手册 - 函数参考 - Array 数组函数 - array_diff计算数组的差集 array_diff (PHP 4 >= 4.0.1, PHP 5) array_d ...
- Js Array数组ES5/ES6常用方法
Js Array数组ES5/ES6常用方法 1.栈方法(先进后出) push():在数组的最后一项后追加值(参数:可以为多个值或数组) 返回:数组的长度,改变了原数组. var a=[1,2,3] a ...
- Java中Arrays.toString ()打印二维数组及Array数组的常用操作
1.Java中Arrays.toString () 已知打印一维数组的API为System.out.println ( Arrays.toString ();,其参数为数组名或数组指针,其支持的数据类 ...
- doctrine find的对象转换成数组_「ES6基础」Array数组的新方法(上)
在日常工作中我们经常会与数组打交道,因此需要熟练掌握数组操作的相关方法,ES6中关于数组的操作,又给我们带来了哪些惊喜呢,Array数组操作又添加了哪些新方法? 本篇文章将从以下几个方面进行介绍: A ...
最新文章
- linux远程开机windows,从Linux到Windows的PowerShell远程处理
- redistemplate 设置永不过期_密码已过期 拒绝访问如何处理?
- 1、以太网基础知识——概念模型
- g标签 怎么设置svg_SVG(可缩放矢量图形)图片添加、高斯模糊、渐变与g标签
- 【存储知识学习】第十章- NAS和SAN《大话存储》阅读笔记
- SDOI2010 地精部落
- Linux bc 命令简单学习
- 合并排序算法排序过程_合并排序| 用于大型输入的最佳排序算法之一
- 对称加密算法原理与常用实现
- 【转】Apache Solr 访问权限控制
- python中tolist_python 列表,数组,矩阵两两转换tolist()的实例
- Java中包、导包、修饰符和内部类
- 中文分词:采用二元词图以及viterbi算法(一)
- 如何使用计算机勾绘汇水面积,水文计算算例
- 动易模板制作示例(一)
- 关于双非本科2020秋招,我想说的
- xmind 8系列便携版:关联.xmind文件的打开方式后,打开文件会在当前文件夹下产生configuration等子目录的问题解决办法
- 《python从入门到项目实践》第六章 列表和元组 //有一个课后答案
- ARFoundation☀️ 八、SARF:ARFoundation可视化插件
- VS 2012 显示Link的参数