Array的用法总结-swift

 

Araay是有序的数据集,在OC中分为不可变数组NSArray和可变数组NSMutableArray,在swift中只有常量和变量两种类型,声明成变量那就可以说明是可变的了!

 

学习时的具体的用法总结成如下的代码:

 

 //数组var arrInts = [Int]()//创建一个空数组arrInts = [];print("arrInts is of type [Int] with \(arrInts.count) items.")//// 打印 "someInts is of type [Int] with 0 items."
        var threeDoubles = Array(repeating:0.0,count:3)//创建一个带有默认值的数组print("threeDoublesArray:\(threeDoubles)")//打印 threeDoublesArray:[0.0, 0.0, 0.0]threeDoubles += threeDoubles//数组合并print("threeDoubles:\(threeDoubles)")//打印 threeDoubles:[0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
        let anotherThreeDoubles = Array(repeating: 2.5, count: 3)let sixDoubles = threeDoubles + anotherThreeDoubles;//数组合并print(sixDoubles)//打印 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.5, 2.5, 2.5]//用数组字面量构造数组var goodsListArr:[String] = ["onions","eggs","apple","orange","pear","salt"]goodsListArr.append("vinegar")//在数组的末尾添加一个元素(不可以用下标访问的形式去在数组尾部添加新项)goodsListArr += ["Chocolate Spread", "Cheese", "Butter"]//给数组添加几个元素if goodsListArr.isEmpty {//判断数组是否为空print("The shopping list is empty.")} else {print("The shopping list is not empty.")}// 打印 "The shopping list is not empty."(shoppinglist 不是空的)
        let firstItem = goodsListArr[0]//根据索引 取对应的索引值print("firstItemValue:\(firstItem)")//打印 firstItemValue:onions
        goodsListArr[0] = "eight onions"//将第一个索引值替换掉// 其中的第一项现在是 "Six onions" 而不是 "onions"
        print("Replace the former results:\(goodsListArr)")//替换前的结果  Replace the former results:["eight onions", "eggs", "apple", "orange", "pear", "salt", "vinegar", "Chocolate Spread", "Cheese", "Butter"]goodsListArr[2...4] = ["Bananas", "Apples"]//将某个范围的值替换掉print("results of substitution:\(goodsListArr)")//替换后的结果 results of substitution:["eight onions", "eggs", "Bananas", "Apples", "salt", "vinegar", "Chocolate Spread", "Cheese", "Butter"]//在数组中插入元素(调用数组的insert(_:at:)方法来在某个具体索引值之前添加数据项)goodsListArr.insert("books", at: 0)//在0索引之前添加数据,现在数组第一个元素是“books”//根据索引移除数组中某一个元素
        let removeItem = goodsListArr.remove(at: 0)//将数组的第一个元素移除并获取被移除的第一项元素print("removed index 0 item is:\(removeItem)  After removing the results:\(goodsListArr)")//removed index 0 item is:books  After removing the results:["eight onions", "eggs", "Bananas", "Apples", "salt", "vinegar", "Chocolate Spread", "Cheese", "Butter"]//如果我们试着对索引越界的数据进行检索或者设置新值的操作,会引发一个运行期错误。我们可以使用索引值和数组的count属性进行比较来在使用某个索引之前先检验是否有效。除了当count等于 0 时(说明这是个空数组),最大索引值一直是count - 1,因为数组都是零起索引
        let lastItem = goodsListArr.removeLast()//将数组的最后一个元素移除并获取被移除的最后一个元素值
        print("removed last item is:\(lastItem) After removing the results:\(goodsListArr)")//打印 removed last item is:Butter After removing the results:["eight onions", "eggs", "Bananas", "Apples", "salt", "vinegar", "Chocolate Spread", "Cheese"]for item in goodsListArr{//数组的遍历
            print("数组遍历的结果:\(item)")/* 打印数组遍历的结果:eight onions数组遍历的结果:eggs数组遍历的结果:Bananas数组遍历的结果:Apples数组遍历的结果:salt数组遍历的结果:vinegar数组遍历的结果:Chocolate Spread数组遍历的结果:Cheese*/}//使用enumerated()方法来进行数组遍历。enumerated()返回一个由每一个数据项索引值和数据值组成的元组。我们可以把这个元组分解成临时常量或者变量来进行遍历(可以同时d得到每个数据项的值和索引值)for(index,value) in goodsListArr.enumerated(){print("Item \(String(index + 1)): \(value)")/*打印Item 1: eight onionsItem 2: eggsItem 3: BananasItem 4: ApplesItem 5: saltItem 6: vinegarItem 7: Chocolate SpreadItem 8: Cheese*/}


这是我近期在学习swift的学习总结,给朋友们提供学习参考,同时发现有错误的地方可以指出相互交流学习共同进步!

 

转载于:https://www.cnblogs.com/Rong-Shengcom/p/7079456.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372026.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Frame URl

http://www.zi-han.net/theme/hplus/?v4.1 http://webapplayers.com/inspinia_admin-v2.5/ http://baijunyao.com/article/67 转载于:https://www.cnblogs.com/shijiaoyun/p/6065755.html

linux的i o模型,浅谈Linux 网络 I/O 模型简介(图文)

1、介绍Linux 的内核将所有外部设备都看做一个文件来操作(一切皆文件),对一个文件的读写操作会调用内核提供的系统命令,返回一个file descriptor(fd,文件描述符)。而对一个socket的读写也会有响应的描述符,称为socket fd(socket文…

handsontable 方法汇总

核心方法1.为handsontable添加钩子方法 addHook(key,callback):key为钩子方法名 例如:hot.addHook(beforeInit, myCallback); addHookOnce(key,callback):添加只使用一次的方法,用完后自动删除 例如:hot.addHookOnce(beforeInit, …

swing中JTable的使用方法

1 public static void main(String[] args) {2 3 Student s1 new Student("张三", "001", 0);4 Student s2 new Student("李四", "002", 1);5 Student s3 new Student("王五", "003",…

android仿高德地图透明黑字,Android 仿高德地图可拉伸的BottomSheet

原标题:Android 仿高德地图可拉伸的BottomSheet2018安卓巴士开发者大会-上海站你一直期待的安卓技术盛宴即将登场!前言最近项目中需要用到高德地图搜索结果后的结果展示的可拉伸控件。而我看到这个效果图,觉得这个就是一个slidingpanel&#…

Java EE 7中包含哪些JSR?

我开始填写所有应该加入Java EE 7的Java规范请求的表。 由于平台版本仍在确定中,因此某些细节很难确定。 完整的Java EE 7 EJB产品具有以下标准组件和API: 名称 版 描述 JSR 网页 轮廓 批处理 1.0 批量处理 352 Bean验证 1.1 Bean验证框…

[ Javascript ] JavaScript中的定时器(Timer) 是怎样工作的!

作为入门者来说。了解JavaScript中timer的工作方式是非常重要的。通常它们的表现行为并非那么地直观,而这是由于它们都处在一个单一线程中。让我们先来看一看三个用来创建以及操作timer的函数。var id setTimeout(fn, delay); - 初始化一个单一的timer&#xff0c…

android dropbox anr分析,Android如何分析排查ANR

释放双眼,带上耳机,听听看~!在Android开发中,当程序发生异常时会抛出异常信息,先说下三种常见类型:列表内容KeyDispatchTimeout(谷歌default 5s,MTK平台上是8s) –主要类型按键或触摸事件在特定…

修改httpd默认端口号

Tomcat: vim /etc/httpd/conf/httpd.conf//别忘了service httpd restart Nginx: vim /etc/nginx/nginx.conf//完了之后service nginx restart 转载于:https://www.cnblogs.com/bincoding/p/6067054.html

整合弹簧,速度和瓷砖

我喜欢 Tiles, 并且听到了很多有关 Velocity的信息 。 它们似乎有不同的用途,并且据说很容易结合在一起,所以我决定试一试,并在Spring Web应用程序中同时使用它们。 集成实际上花费了许多小时,并且是一次真正的过山车&…

Android 软键盘自动弹出和关闭

在我们写修改信息或者搜索,修改密码等界面的时候,用户进入这个界面的主要目的就是输入修改/查找 某些信息,为了用户体验应该自动弹出软键盘而不是让用户主动点击输入框才弹出。 1.软键盘的自动弹出 private void showKeyboard(){InputMethodM…

android adb杀死服务,Android app是如何杀掉的

1. adb shell kill -9 pid_of_appAMS定义了AppDeathRecipientAPP 在 attachApplication -> attachApplicationLockedAMS里会注册 App 进程的 BinderDeath通知AppDeathRecipient adr new AppDeathRecipient(app, pid, thread);thread.asBinder().linkToDeath(adr, 0);当App进…

iOS学习笔记39-ReactiveCocoa入门

FRP,全称为Functional Reactive Programming,是一种响应变化的编程范式,最近几年比较火,大概的理解就像这样: 当a的值或者b的值发生变化时,c的值会自动响应a的值或b的值变化的信号,自动更正自己…

使用密码摘要生成器扩展JMeter

最近,我不得不处理一个带有50,000条用户记录的OpenLDAP实例,并进行一些压力测试。 JMeter是填充LDAP的最佳选择。 但是,在我的情况下,OpenLDAP配置为不接受任何明文密码。 因此,我无法使用通过JMeter LDAP Request采…

制造业数字化转型核心不止是技术

一、制造业的数字化转型意味着什么? 在当今的制造业领域,数字化转型意味着通过集成数字技术来增强传统的制造方法、产品和劳动力的过程。这些技术包括一系列创新,如自动化软件、电子商务系统、传感器、工业机器人等。 二、制造业数字化转型的…

分类测试以减少构建时间

在继续本文的主要内容之前,让我们先进行一些定义。 单元测试 单元测试是小型的(测试一种用例或单元),在内存中运行(不与数据库,消息队列等交互),可重复且快速的测试。 对于我们的对…

android横向展示状态,【报Bug】Android横屏状态下启动App,即使在App.vue中锁定竖屏,但是首页nvue中的rpx单位是按照启动的横竖屏状态显示的!...

详细问题描述(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)[内容]重现步骤[步骤][结果][期望]nvue首页rpx单位能够根据App.vue锁定的屏幕方向…

property修饰关键字

修饰符按作用区分:线程安全相关,内存相关,读写权限相关,set和get,是否可为空, class 一.默认值 property NSArray *dataArray; 默认的是:atomic,strong(有的文章写的居然是assign,我认为还是str…

高精度相关模板.

1 2 /*3 高精度加法.4 */5 #include<cstring>6 #include<cstdio>7 #include<iostream>8 #define MAXN 100019 using namespace std;10 int a[MAXN],b[MAXN],c[MAXN],l1,l2,l3;11 char m[MAXN],n[MAXN];12 void slove()13 {14 l3max(l1,l2);15 for(in…

5分钟内Google App Engine上的Vaadin App

在本教程中&#xff0c;您将学习如何创建第一个Vaadin Web应用程序&#xff0c;如何在本地AppEngine开发服务器上运行它以及如何将其部署到Google App Engine基础结构。 所有这些大约需要5到10分钟。 是的&#xff0c;如果您安装了必要的先决条件&#xff0c;则可以立即开始运行…