文档章节

swift 数组高阶使用(一)

樱黯雨
 樱黯雨
发布于 2016/07/02 10:46
字数 294
阅读 16
收藏 0

###swift 数组高阶使用 在使用数组的时候,我们通常会通过下标的方式来获得数组中的元素,但是有时候我们会需求会非常变态,比如我们只需要获取数组中下标为0,2,4的元素,或者对他们进行修改。swift的extension就给我们提供了很好的帮助。直接上代码:

// 对Array 进行扩展
extension Array {
    // 这里我们扩展一个新的方法,并且实现它的get和set方法
    subscript(input:[Int]) ->ArraySlice<Element> {
    get {
        var result = ArraySlice<Element>()
        for i in input {
            assert(i < self.count, "越界")// 越界时的断言
            result.append(self[i])
        }
        return result
    }
    set {
        for (index, i) in input.enumerate() {
            assert(i < self.count, "越界")// 越界时的断言
            self[i] = newValue[index]
        }
    }
    }
}
// 测试代码如下
var array = [1, 2, 3, 4, 5]
array[[0, 2, 4]]   // [1, 4, 5]
array[[0, 1, 2]] = [9, 9, 9]
array            // [9, 9, 9, 4, 5]

这样就可以满足我们对数组的各种奇葩需求,希望可以帮助大家。

PS: 断言在我的博客中也有讲解,具体链接:断言的使用

© 著作权归作者所有

樱黯雨
粉丝 3
博文 35
码字总数 19899
作品 0
郑州
程序员
私信 提问
Swift中的高阶函数:sorted, map, reduce, forEach, flatMap, filter

高阶函数(Higher-order function) 在数学和计算机科学中,高阶函数是至少满足下列一个条件的函数: 接受一个或多个函数作为输入 输出一个函数 函数式编程中,高阶函数比较常见了。 注:, ,...

Andy_Ron
2018/10/15
0
0
swift,Array的高阶函数使用一: map

对于喜欢直接看代码的小伙伴们来说,可以直接跳过 一、二、三,直接看第四步,就找到你喜欢的code了。 一、学习背景 使用swift语言也有一年了,说来惭愧,遇到问题百度的时候多,大部分都是问...

like_sunflower
01/04
0
0
[函数式Swift]从 map 函数看泛型

泛型的应用,先看一段代码 刚入门Swift看到这段代码会觉得有点懵,毕竟OC之前可没有 T 这种东西 其实这就是 Swift 标准库的 map 函数实现,接受一个数组计算后返回一个新的数组 OC中用过RAC的...

PetitBread
2017/11/27
0
0
iOS 中的链式编程、函数式编程入门

对一个程序猿来说,从一开始接触编程后会逐渐经历好几个不同的编程思想。包括过程式编程、面向对象编程、响应式编程、函数式编程、链式编程等等。 的特点是随着程序的编写逐步进行,写到哪儿...

BennyLoo
2017/11/08
0
0
07-Swift中的数组

数组 1 数组的介绍 2 数组的初始化 数组的初始化 在声明一个Array类型的时候可以使用下列的语句之一 声明的数组需要进行初始化才能使用,数组类型往往是在声明的同时进行初始化的 3 对数组的...

不孤独的美食家
2016/08/06
5
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot全家桶,集成shiro,rabbitmq,redis, mybatis,druid,swagger

搭建了一个SpringBoot的模板,下载即可作为单体应用的服务后台模板 项目地址:https://gitee.com/devilscode/springboot_template 项目集成框架 springboot 作为基础框架 shiro 权限管理 ra...

devils_os
16分钟前
2
0
云服务器的优势有哪些?

与传统的服务器相比,云服务器有多种显著的优势,因此近年来云服务器租用一直都很受消费者的欢迎。 那么云服务器都有哪些优势呢? 云服务器的稳定性很好 虚拟主机是很多用户建站的首选方案,这...

云漫网络Ruan
16分钟前
2
0
好程序员web前端学习路线分享CSS浮动-清除浮动篇

好程序员web前端学习路线分享CSS浮动-清除浮动篇,为什么要清除浮动   这里所说的清除浮动,并不是不要浮动了,而是清除浮动与浮动之间的影响。那么到底会有什么影响呢? 1.高度塌陷   ...

好程序员官方
27分钟前
1
0
我有酒,你有故事吗?

记录学习的每一秒,巨杉技术社区有奖征文全新启动! 如果, 你热爱数据技术,乐于尝(zhe)试(teng), 又喜欢写点什么~ 那么, 无论你是架构大佬,还是DBA大神, 只要你愿意通过文字分享你...

巨杉数据库
31分钟前
1
0
【Git】ignore文件不生效

简介 使用git的过程中, 某些文件可能不希望上传到服务器,例如日志、本地化配置等信息。这时候,我们可以通过配置.gitignore文件忽略这些文件的提交。 配置.gitignore 常见的配置如下: HELP...

Areya
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部