Swift-数组
1、数组的定义
//OC 使用[]定义数组,Swift一样,但是没有@
//自动推导的结果[String]->表示数组中存的都是String
//跟OC中的数组指定泛型类型
//Swift 中基本数据类型不需要包装
let array = ["张三","里斯"]
//CG结构体
let p = CGPoint(x: 10, y: 300)
let array3 = [p]
//混合数组:开发中几乎不用,因为数组是靠下标索引
//如果数组中的类型不一致,自动推导的结果[NSObject]
//在Swift 中还有一种类型[AnyObject]->任意类型
//在Swift 中一个类可以没有任何‘父类’
//在混合的数组中,CG结构体需要包装
let array4 = ["账单",1,2,NSValue(CGPoint:p)]
2、数组的遍历
let array = ["张三","里斯","xiaoming"]
方法一:按照下标遍历
for i in 0..<array.count {
print(i)
}
方法二:for in 遍历元素
for s in array{
print(s)
}
方法三:enum block 遍历,同时遍历下标和内容
for e in array.enumerate(){
print(e)
/*
元组
(0, "张三")
(1, "里斯")
(2, "xiaoming")
*/
}
方法四:遍历下标和内容
//n 索引下标
//s 就是[String]数组n对应的String元素
//n/s随便写
for (n, s) in array.enumerate(){
print("\(n)\(s)")
}
方法五:反序遍历
for s in array.reverse(){
print(s)
}
方法六:反序遍历下标和内容
//先枚举再反序
for (n,s) in array.enumerate().reverse(){
print("\(n)\(s)")
}
3、数组的增删改
OC数组分为可变和不可变数组,在Swift中改变var就行
追加元素
array.append("老王")
//修改,通过下标定位
array[0] = "@"
//删除
array.removeAtIndex(2)
//删除全部,并且保留空间
array.removeAll(keepCapacity: true)
print("\(array)\(array.capacity)")
4、数组的容量
//定义个数组,指定类型, 但是没有初始化
//var array: [Int]
//初始化
// array = [Int]()
//以上可以合并成一句
var array = [Int]()
array.capacity的容量初始化为0,以2,4,8,16……递增
//如果初始化指定容量,可以避免插入数据时,重复分配空间,效率会高点
//[NSMutableArray arrayWithcapacity:10]
5、数组的合并
var array:[NSObject] = ["张三","里斯","xiaoming"]
let array2 = ["老公","1","2",100]
//将array2合并到array中
//注:要合并的数组类型必须一致,才可以直接+
array += array2
Swift-数组的更多相关文章
- Swift数组
数组的介绍 数组(Array)是一串有序的由相同类型元素构成的集合 数组中的集合元素是有序的,可以重复出现 Swift中的数组 swift数组类型是Array,是一个泛型集合 数组的初始化 数组分成: ...
- 3. Swift 数组|字典|集合
在OC中数组,字典,集合有自己的表示方法,分别是Array,Dictionary,Set 与 String 都属于数值类型变量,他们都属于结构体. 使用简介灵活多变,个人感觉可读性变差了很多,用起来由 ...
- 学习Swift -- 数组(Array) - 持续更新
集合类型--数组 Array是Swift中的一种集合类型:数组,数组是使用有序列表储存同一类型的多个值,与OC的NSArray的最大不同是,Swift的数组是值类型,OC的数组是引用类型 声明数组的方 ...
- Swift数组的存取与修改
对数组的存取与修改可以通过数组的方法和属性来进行,或者使用数组的下标语法. 要知道数组中元素的数量,可以查看它的只读属性count: println("The shopping list c ...
- Swift数组字面量
可以用一个数组字面量来初始化一个数组,简单地把一个或多个值放在一起就可以了.数组字面量的写法是一行用逗号隔开的值,并在行的两端用一对方括号包起来: [value , value , value ] 下 ...
- swift 数组 的一些快速方法
1. filter (过滤器):返回符合条件的一个数组 let arr = [1,5,6,7,10,0] //写法1 let arr1 = arr.filter { (item) -> Bool ...
- swift 数组作为函数参数的书写格式
数组定义 --[来自百度知道] Swift语言使用类型名紧接中括号[]来简化标准库中定义的命名型类型Array.例如 Array<String> = ["Alex", ...
- [Swift]数组(Array)最强解析
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- 【Swift初见】Swift数组(二)
在苹果的开发文档中对Array还提供了其它的操作算法: 1.Sort函数: 对数组进行排序.依据指定的排序规则,看以下的代码: var array = [2, 3, 4, 5] array.sort{ ...
- Swift数组的加法运算符用法:array1 += array2
var stringList1 = [String]() //创建String类型空数组 var stringList2 = ["1", "3", " ...
随机推荐
- winform datagridview不显示滚动条
datagridview 数据行数已经超出表格显示范围了,为什么右侧没有滚动条呢? 这个其实不是DataGridView的问题,实际上滚动条是出现了的,但被其他东西挡住了.如果网格是放在panel上的 ...
- c++编码规范(摘录)
在同一项目组应明确规定对接口函数参数的合法性检查应由函数的调用者负责还是由接口函数本身负责,缺省是由函数调用者负责. 函数的规模尽量限制在200行以内.说明:不包括注释和空格行. 一个函数仅完成一件功 ...
- P1969 积木大赛
题意:给你一段序列,一次操作:[l,r]内所有数+1 初始序列全为0 现在给你最后序列,问最少操作几次能达到这样的序列 蒟蒻表示秒想到------差分啊 每次差分必有一个+1,一个-1 把差分数组求出 ...
- kubernetes相关命令
关闭防火墙 [关闭swap] 执行swapoff -a可临时关闭,但系统重启后恢复 编辑/etc/fstab,注释掉包含swap的那一行即可永久关闭 [关闭SeLinux] sed -i 's/SEL ...
- 【转】eclipse上的.properties文件中文编辑显示问题
首先,解决.properties文件中的中文编辑问题,我们发现,在.properties文件中输入的中文变成了这个样子: 这是eclipse的.properties文件,默认的编码方式是iso-885 ...
- vue.js入门环境搭建
1.node.js环境(npm包管理器) 2.vue-cli手脚架构建工具 3.cnpm npm的淘宝镜像 安装node.js 从node.js官网下载并安装node,安装过程一路“下一步”就可以 安 ...
- java——newInstance()方法和new关键字
https://www.cnblogs.com/liuyanmin/p/5146557.html 这两个都可以创建一个对象,那么这样个东西有什么不一样呢?什么时候用new,什么时候用newInstan ...
- java——sleep()和wait()
1.所属类不同sleep()属于Thread而wait()属于Object 2.sleep()没有释放当前锁,wait()则释放了当前锁 3.sleep(0)的目的是使当前线程释放cpu,其他线程可以 ...
- $.extend({},defaults, options)
1.$.extend({},defaults, options) 这样做的目的是为了保护包默认参数.也就是defaults里面的参数. 做法是将一个新的空对象({})做为$.extend的第一个参数, ...
- @RequestParam详解以及加与不加的区别
以前写controller层的时候都是默认带上 @RequestParam 的, 今天发现不加@RequestParam 也能接收到参数 下面我们来区分一下加与不加的区别 这里有两种写法 @Reque ...