Swift4.0 Array详解

  • 数组的介绍

  数组(Array)是一串有序的由相同类型元素构成的集合,数组中的集合元素是有序的,可以重复出现。在Swift中数组类型是Array,是一个泛型集合。数组分成:可变数组和不可变数组,分别使用let修饰的数组是不可变数组,使用var修饰的数组是可变数组。

  • 数组的初始化

   一、初始化一个空数组(类型:[数据类型]())

    1、创建一个整形的空数组

      let  array = [Int] ()

    这里array 数组变量 被let 修辞 ,array数组是不可变数组,只能访问,不能修改

      var  array = [Int] ()

    这里array 数组变量 被var 修辞 ,array数组是可变数组,可以动态修改  

    2、创建任意可存储任意类型的数组 [Any] ()

  • 数组的使用              

 //创建一个可变数组(可存储任意类型的数据)
        var arr:Array  = [Any]()
        //创建一个可变数组 (存储字符串类型)
//        var arr1:[String] = [String]()

//        1 向数组添加元素 appped()函数

        //1.1向数组添加一个元素
        arr.append("xiaoming")
        print("arr == \(arr)")
        arr.append(1)
        print("arr = \(arr)");

        //1.2向数组添加一个数组
        let addArr:Array = [1,2,"tianjia"] as [Any]
        arr.append(addArr)
        print("addArr = \(arr)")

        //1.3使用加法赋值运算符(+=)也可以直接在数组后面添加元素但添加的元素必须是数组形式的 使用+=操作符时,右边的必须为数组,即使只有一个元素时也要为数组,还有就是通过这种方式你可以一次性给数组增加多个值
        let addArr1 = [6,5] as [Any]
        arr += addArr1
        print("arr = \(arr)")

        //1.4向数组插入元素
        arr.insert("插入的元素", at: 1)

        //2.移除数组里的元素
        //2.1移除特定的元素
        arr.remove(at: 0)
        print("removeArr = \(arr)")
        //2.2移除数组所有元素
        arr.removeAll()
//        removeAll方法接受一个参数,允许清空数组时是否保持数组的容量,该参数默认值为false,即将数组的capacity容量设置为0。如果你想保持容量,可以参考下代码:
//        var originalCapacity = arr.capacity   //
//        originalCapacity = 12
//        arr.removeAll(keepingCapacity: true)
//        var newCapacity = arr.capacity        //
//        newCapacity = 12
//        由上代码可以看出emptyArray在需要重新分配内存之前可以存储12个值,然而使用removeAll(),newCapcity则等于0。

        //2.3移除数组的第一个元素
//        arr.removeFirst()
        //2.4移除数组的最后一个元素
//        arr.removeLast()
//        在这些移除的方法里都有返回被移除的数据

//       3. 数组的长度
        let count = arr.count
        print("arrCont = \(count)")

//        4.数组中元素的修改
        arr[1] = "xiugai"
        print("xiuGai = \(arr)")

//       5.访问数组中的元素
        let item = arr[1]
        print("item = \(item)")
        
  • 遍历数组

var stringArr:[String] = ["xiaoming","tianya","xiaoming","tiantian"]
        //        遍历数组
        for item in stringArr {
            print("iteem == \(item)")
        }

        for item in 0..<stringArr.count {
            print("iteem == \(item)")
        }

        // 设置遍历的区间
        for item in stringArr[0...2] {
            print("iteem == \(item)")
        }
时间: 2024-12-13 01:49:35

Swift4.0 Array详解的相关文章

后缀数组(suffix array)详解

后缀数组(suffix array)详解 转载请注明:http://www.cnblogs.com/acmer-jsb/p/3988683.html 一.What  Is  Suffix Array? 用我的理解,后缀数组是一种功能强大的字符串处理工具,堪称字符串处理神奇,尤其是在字符串匹配方面更是有着出色的处理能力. 其实后缀数组是后缀树的一个非常精巧的替代品,它比后缀树容易编程实现,能够实现后缀树的很多功能而时间复杂度也不太逊色,并且,它比后缀树所占用的空间小很多.可以说,在信息学竞赛中后缀

Vue1.0用法详解

Vue.js 不支持 IE8 及其以下版本,因为 Vue.js 使用了 IE8 不能实现的 ECMAScript 5 特性. 开发环境部署 可参考使用 vue+webpack. 基本用法 1 2 3 4 5 6 7 8 9 10 11 <div id="app"> {{message}} <input v-model="message"> </div> new Vue({ ele: '#app', data: { message:

C# 网络编程之豆瓣OAuth2.0认证详解和遇到的各种问题及解决

        最近在帮人弄一个豆瓣API应用,在豆瓣的OAuth2.0认证过程中遇到了各种问题,同时自己需要一个个的尝试与解决,最终完成了豆瓣API的访问.作者这里就不再吐槽豆瓣的认证文档了,毕竟人家也不容易.但是作者发现关于豆瓣OAuth认证过程的文章非常之少,所以想详细写这样一篇文章方便后面要做同样东西的人阅读.希望文章对大家有所帮助,尤其是想做豆瓣API开发的初学者. (文章中蓝色字表示官方文档引用,红色字是可能遇到问题及注意,黑色字是作者叙述) 一.误区OAuth1.0认证过程    

Cocos2d-x 3.0坐标系详解(转载)

Cocos2d-x 3.0坐标系详解Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系.笛卡尔坐标系笛卡尔坐标系中定义右手系原点在左下角,x向右,y向上,z向外,OpenGL坐标系为笛卡尔右手系.屏幕坐标系和Cocos2d坐标系标准屏幕坐标系使用和OpenGL不同的坐标系,而Cocos2d则使用和OpenGL相同的坐标系.iOS, Android, Windows Phone等在开发应用时使用的是标准屏幕坐标系,原点为屏幕左上角,x向右,y向下.Cocos2d坐标系和Ope

CentOS 7上安装Zabbix Server 3.0 图文详解

转载自 http://www.linuxidc.com/Linux/2016-09/135204.htm CentOS 7上安装Zabbix Server 3.0 图文详解 1.查看系统信息. cat /etc/RedHat-releaseCentOS Linux release 7.0.1406 (Core) uname -a Linux VM_96_155_centos3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_

Spring3.0 AOP 详解

一.什么是 AOP. AOP(Aspect Orient Programming),也就是面向切面编程.可以这样理解,面向对象编程(OOP)是从静态角度考虑程序结构,面向切面编程(AOP)是从动态角度考虑程序运行过程. 二.AOP 的作用. 常常通过 AOP 来处理一些具有横切性质的系统性服务,如事物管理.安全检查.缓存.对象池管理等,AOP 已经成为一种非常常用的解决方案. 三.AOP 的实现原理. 如图:AOP 实际上是由目标类的代理类实现的.AOP 代理其实是由 AOP 框架动态生成的一个

zabbix专题:第二章 zabbix3.0安装详解

zabbix3.0安装详解 本节目录大纲 安装配置mariadb 安装服务器端 zabbix web配置 web页面初始化 更改为中文 中文乱码问题 zabbix专题:第二章 zabbix3.2安装详解 zabbix专题:第二章 zabbix3.2安装详解 官方文档地址: https://www.zabbix.com/documentation/3.2/manual/installation/install_from_packages 我安装zabbix用的rpm包,可以从官网的源里面去下载,需

Retrofit2.0使用详解

Retrofit2.0使用 随笔 生活是一面镜子,不去擦拭,岁月的灰尘将掩埋它. 转载请标明出处:http://blog.csdn.net/qq_15807167/article/details/51712048 主页 Retrofit20使用 初次了解Retrofit 具体的使用文档 请求体Request Body FORM ENCODED AND MULTIPART 表单和Multipart 异步 VS 同步 Retrofit20的新知识点 Retrofit20的使用方式 使用 注意 如果有

[转载]AxureRP 7.0部件详解(一)

本文为Axure RT7.0教程,本章主要介绍menu菜单.table表格.Tree Widget 树部件三个部件,后续将持续更新...... Menu 菜单 常用案例 网站导航菜单部件通常用于母板之中,其目的是在原型中跳转到不同页面. 编辑菜单要编辑菜单,右键点击在弹出的上下文菜单中选择 在之前/之后新增菜单项.删除菜单.新增子菜单. 菜单样式使用工具栏或部件样式面板可以编辑菜单样式,如填充颜色,字体颜色,字体大小等,需要注意的是子菜单是通过父菜单获取格式的.要自定义菜单样式,参见 弹出菜单案