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()
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详解的更多相关文章
- Vue1.0用法详解
Vue.js 不支持 IE8 及其以下版本,因为 Vue.js 使用了 IE8 不能实现的 ECMAScript 5 特性. 开发环境部署 可参考使用 vue+webpack. 基本用法 1 2 3 ...
- Android消息传递之EventBus 3.0使用详解
前言: 前面两篇不仅学习了子线程与UI主线程之间的通信方式,也学习了如何实现组件之间通信,基于前面的知识我们今天来分析一下EventBus是如何管理事件总线的,EventBus到底是不是最佳方案?学习 ...
- [转载]AxureRP 7.0部件详解(一)
本文为Axure RT7.0教程,本章主要介绍menu菜单.table表格.Tree Widget 树部件三个部件,后续将持续更新...... Menu 菜单 常用案例 网站导航菜单部件通常用于母板之 ...
- Cocos2d-x 3.0坐标系详解(转载)
Cocos2d-x 3.0坐标系详解 Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系. 笛卡尔坐标系 笛卡尔坐标系中定义右手系原点在左下角,x向右,y向上,z向外,OpenG ...
- NPOI2.2.0.0实例详解(十)—设置EXCEL单元格【文本格式】 NPOI 单元格 格式设为文本 HSSFDataFormat
NPOI2.2.0.0实例详解(十)—设置EXCEL单元格[文本格式] 2015年12月10日 09:55:17 阅读数:3150 using System; using System.Collect ...
- windows版mysql8.0安装详解
2018年07月04日 13:37:40 Zn昕 阅读数 6433更多 分类专栏: mysql 版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. ...
- vue-cli3.0配置详解
这次给大家带来vue-cli3.0配置详解,使用vue-cli3.0配置的注意事项有哪些,下面就是实战案例,一起来看一下. 新建项目 1 2 3 4 5 6 7 8 # 安装 npm install ...
- .NET ORM框架 SqlSuagr4.0 功能详解与实践【开源】
SqlSugar 4.0 ORM框架的优势 为了未来能够更好的支持多库分布式的存储,并行计算等功能,将SqlSugar3.x全部重写,现有的架构可以轻松扩展多库. 源码下载: https://gith ...
- OAuth2.0认证详解
目录 什么是OAuth协议 OAuth2.0是为了解决什么问题? OAuth2.0成员和授权基本流程 OAuth2.0成员 OAuth2.0基本流程 什么是OAuth协议 OAuth 协议为用户资源的 ...
随机推荐
- Linux入门基础知识
注:内容系兄弟连Linux教程(百度传课:史上最牛的Linux视频教程)的学习笔记. Linux入门基础知识 1. Unix和Linux发展历史 二者就像父子关系,当然Unix是老爹.1965年,MI ...
- AndroidTv开发中常用的adb命令
盒子应用开发时,调试比手机上的开发比较麻烦一点,而且需要经常跟 adb 打交道,不管是 wifi 连接调试,还是应用删除安装等.这里记录一些常用的操作,方便查阅. adb wifi连接调试 方法一:需 ...
- Eclipse错误:Implicit super constructor ClassName is undefined for default constructor. Must define an explicit constructor
public class Test01 { private String name; private int age; public Test01(String name){ this.name = ...
- string::npos,一个很大的数
string::npos,这是一个很大的数 npos 是这样定义的: static const size_type npos = -1; 因为 string::size_type (由字符串配置器 a ...
- Eclipse中tomcat配置
配置这两个东西 tomcat,在eclipse中启动 tomcat 才会可以访问 来自为知笔记(Wiz)
- 基于Dubbo的压测调优实例
不久前参与开发了一个基于dubbo分布式框架的底层账单系统,并实现了其中的一部分业务接口,目前需对这些接口进行压测,以评估生产环境所能承受的最大吞吐量.笔者以其中一个查询接口为例来回顾此次压测的整体流 ...
- 易云捷讯MySQL云数据库上线,推进IaaS与PaaS融合战略布局
日前宣布,其基于MySQL的关系型云数据库已经正式上线公测,用户可通过易云管理控制台创建.监控与管理mysql数据库.此服务包括在线扩容.自动备份.灵活配置和监控告警等功能,旨在帮助用户实现便捷的运维 ...
- Oracle undo我们需要掌握什么
<Oracle undo我们需要掌握什么> 引言:undo 是Oracle数据库的重要组件,刚入门的朋友建议要把undo的原理和机制理解明白,尤其是和redo组件的区别和联系.了解undo ...
- JQuery 思维导图
JQuery 就这么点内容,但是他能做出很多很多的效果.
- 利用webpack构建vue项目
快速搭建vue项目 一,确认自己有无搭建好node以及npm环境,这些是前提,具体安装方法可参考https://nodejs.org/en/. 二,开始构建项目. 第1步:新建一个文件夹,随意命名. ...