• 数组的介绍

  数组(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()
print("arr = \(arr)"); //1.2向数组添加一个数组
let addArr:Array = [,,"tianjia"] as [Any]
arr.append(addArr)
print("addArr = \(arr)") //1.3使用加法赋值运算符(+=)也可以直接在数组后面添加元素但添加的元素必须是数组形式的 使用+=操作符时,右边的必须为数组,即使只有一个元素时也要为数组,还有就是通过这种方式你可以一次性给数组增加多个值
let addArr1 = [,] as [Any]
arr += addArr1
print("arr = \(arr)") //1.4向数组插入元素
arr.insert("插入的元素", at: ) //2.移除数组里的元素
//2.1移除特定的元素
arr.remove(at: )
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[] = "xiugai"
print("xiuGai = \(arr)") // 5.访问数组中的元素
let item = arr[]
print("item = \(item)")
  • 遍历数组

var stringArr:[String] = ["xiaoming","tianya","xiaoming","tiantian"]
// 遍历数组
for item in stringArr {
print("iteem == \(item)")
} for item in ..<stringArr.count {
print("iteem == \(item)")
} // 设置遍历的区间
for item in stringArr[...] {
print("iteem == \(item)")
}

Swift4.0 Array详解的更多相关文章

  1. Vue1.0用法详解

    Vue.js 不支持 IE8 及其以下版本,因为 Vue.js 使用了 IE8 不能实现的 ECMAScript 5 特性. 开发环境部署 可参考使用 vue+webpack. 基本用法 1 2 3 ...

  2. Android消息传递之EventBus 3.0使用详解

    前言: 前面两篇不仅学习了子线程与UI主线程之间的通信方式,也学习了如何实现组件之间通信,基于前面的知识我们今天来分析一下EventBus是如何管理事件总线的,EventBus到底是不是最佳方案?学习 ...

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

    本文为Axure RT7.0教程,本章主要介绍menu菜单.table表格.Tree Widget 树部件三个部件,后续将持续更新...... Menu 菜单 常用案例 网站导航菜单部件通常用于母板之 ...

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

    Cocos2d-x 3.0坐标系详解 Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系. 笛卡尔坐标系 笛卡尔坐标系中定义右手系原点在左下角,x向右,y向上,z向外,OpenG ...

  5. NPOI2.2.0.0实例详解(十)—设置EXCEL单元格【文本格式】 NPOI 单元格 格式设为文本 HSSFDataFormat

    NPOI2.2.0.0实例详解(十)—设置EXCEL单元格[文本格式] 2015年12月10日 09:55:17 阅读数:3150 using System; using System.Collect ...

  6. windows版mysql8.0安装详解

    2018年07月04日 13:37:40 Zn昕 阅读数 6433更多 分类专栏: mysql   版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. ...

  7. vue-cli3.0配置详解

    这次给大家带来vue-cli3.0配置详解,使用vue-cli3.0配置的注意事项有哪些,下面就是实战案例,一起来看一下. 新建项目 1 2 3 4 5 6 7 8 # 安装 npm install ...

  8. .NET ORM框架 SqlSuagr4.0 功能详解与实践【开源】

    SqlSugar 4.0 ORM框架的优势 为了未来能够更好的支持多库分布式的存储,并行计算等功能,将SqlSugar3.x全部重写,现有的架构可以轻松扩展多库. 源码下载: https://gith ...

  9. OAuth2.0认证详解

    目录 什么是OAuth协议 OAuth2.0是为了解决什么问题? OAuth2.0成员和授权基本流程 OAuth2.0成员 OAuth2.0基本流程 什么是OAuth协议 OAuth 协议为用户资源的 ...

随机推荐

  1. vue-resource pos提交t数据时碰到Django csrf

    最近在用Vue写前端代码,再用vue-resource向后台提交数据.项目后台是用python+Django开发的.下面我就复盘一下我出现问题的经过. 首先,想用vue进行数据交互只能引入vue-re ...

  2. STextComboBox & SComboBox

    //简单智能 SNew(STextComboBox).ContentPadding(5).OptionsSource(&Options).InitiallySelectedItem(Optio ...

  3. 自定义Git之搭建Git服务器

    在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业公司来说,既不想 ...

  4. 金明的预算方案 NOIP 2006 提高组

    题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱 ...

  5. Gitlab CI 自动部署 asp.net core web api 到Docker容器

    为什么要写这个? 在一个系统长大的过程中会经历不断重构升级来满足商业的需求,而一个严谨的商业系统需要高效.稳定.可扩展,有时候还不得不考虑成本的问题.我希望能找到比较完整的开源解决方案来解决持续集成. ...

  6. android学习ProgressBar的简单使用

    android 提供的ProgressBar控件分为两种,一种是不带进度的进度条,一种是带进度的进度条,如果可以计算任务的完成量那么就用带进度条的,如果无法计算任务量,那么就使用不带进度的进度条.Pr ...

  7. 运行和控制Nginx

    Nginx命令行选项 启动.停止.重启nginx命令 如何重新加载nginx配置文件 nginx程序不重启平滑升级可执行文件   nginx命令行参数 不像许多其他软件系统,Nginx 仅有几个命令行 ...

  8. 利用Div+CSS(嵌套+盒模型)布局页面完整实例流程

    Div+CSS(嵌套+盒模型)布局页面完整实例流程: <!DOCTYPE html><html> <head>  <meta charset="UT ...

  9. FFT 专题讲解

    FFT是什么? FFT是快速傅里叶变换(fast Fourier transform)的简称.在ACM领域主要是用来快速求解多项式乘法的算法, 在信号领域也有很大用途 基础知识 卷积 举个例子,给你两 ...

  10. C语言——指针

    一.什么是指针 "指针变量"是指用来存放变量地址的变量.指针变量也是一个变量,它和其他变量的区别在于它里面存的不是普通的数据,而是另一个变量的地址.访问变量有两种方式,第一种是直接 ...