Swift数组详细用法解析_Swift

一、说明

Swift数组中的类型必须一致,这一点与OC不同


// 数组初始化
var numbers = [0,1,2,3,4,5]
var vowels = ["A","E","I","O","U"]

// 数组的类型: [Int] 或者 Array<Int>
//var numbers: [Int] = [0,1,2,3,4,5]
//var numbers: Array<Int> = [0,1,2,3,4,5]

// 空数组
var emptyArray1:[Int] = []
var emptyArray2:Array<Int> = []
var emptyArray3 = [Int]()
var emptyArray4 = Array<Int>()

// 创建具有默认值的数组(相同元素的数组)
var allZeros = Array<Int>(repeating: 0, count: 5)
//[0,0,0,0,0]
var allZeros2 = [Int](repeating: 0, count: 5)
//[0,0,0,0,0]

二、常用方法

var numbers = [1,2,3,4,5]
var vowels = ["A","E","I","O","U"]
var emptyArray = [Int]()

// 数组长度
vowels.count

// 判空
numbers.isEmpty
emptyArray.isEmpty

// 获取元素
vowels[2]
// 数组越界是一个严重的错误
//vowels[-1]
//vowels[5]

// 获取第一个元素和最后一个元素,返回的是可选型
vowels.first
vowels.last  //.first和.last的返回值都为可选型
emptyArray.first

if let firstVowel = vowels.first{
  print("The first vowel is " + firstVowel)
}

vowels.first!

vowels[vowels.count-1]

// 获取最小,最大值
numbers.min() //1
vowels.max() //U

// 使用范围
numbers[2..<4] //[3,4]
numbers[2..<numbers.count] //[3,4,5]

// 包含
vowels.contains("A")
vowels.contains("B")

let letter = "A"
if vowels.contains( letter ){
  print("\(letter) is a vowel")
}
else{
  print("\(letter) is not a vowel")
}

vowels.index(of: "E") //获取索引,返回值为可选型

if let index = vowels.index(of: "E"){
  print("E is a vowel in position \(index+1).")
}
else{
  print("E is not a vowel.")
}

// 遍历
for index in 0..<numbers.count{
  numbers[index]
}

for number in numbers{
  print(number)
}

for (index, vowel) in vowels.enumerated(){
  //遍历数组索引和元素
  print("\(index+1): \(vowel)")
}

// 比较
var oneToFive = [1,2,3,4,5]
numbers == oneToFive //true

var oneToFive2 = [1,2,4,3,5]
numbers == oneToFive //true

//swift 3.0之前数组是有序的数据集合,swift 3.0后为无序

三、更多操作

var courses = ["A","B","C"]

// 添加元素
courses.append("D") //["A","B","C","D"]
print(courses)

// 数组常量
//使用let定义的数组不可以更改任何内容

courses += ["E"] //+=后面必须和前面的类型一致 //["A","B","C","D","E"]
print(courses)

// 两个数组相加
courses = courses + ["F","G"] //+后面必须是数组
//["A","B","C","D","E","F","G"]
print(courses)

courses.insert("Q", at: 5)
//["A", "B", "C", "D", "E", "Q", "F", "G"]
print(courses)

// 删除元素
courses.removeLast()
//["A", "B", "C", "D", "E", "Q", "F"]
print(courses)

courses.removeFirst()
//["B", "C", "D", "E", "Q", "F"]
print(courses)

courses.remove(at: 4)
//["B", "C", "D", "E", "F"]
//courses.removeAtIndex(10)
print(courses)

//区间删除操作
//courses.removeRange(0..<4)
//courses.removeRange(0..<10)
//print(courses)

//courses.removeAll()
//print(courses)

// 修改元素
courses[0] = "W"
//["W", "C", "D", "E", "F"]
print(courses)
//范围修改
courses[1...3] = ["W","W","W"]
//["W", "W", "W", "W", "F"]
print(courses)

courses[0...3] = ["W"]
//["W", "F"]
print(courses)

四、二维数组

var board = [ [1024,16,2,0] , [256,4,2,0] , [64,2,0,0] , [2,0,0,0] ]
//var board:[[Int]] = [ [1024,16,2,0] , [256,4,2,0] , [64,2,0,0] , [2,0,0,0] ]
//var board:[Array<Int>] = = [ [1024,16,2,0] , [256,4,2,0] , [64,2,0,0] , [2,0,0,0] ]
//var board:Array<[Int]> = [ [1024,16,2,0] , [256,4,2,0] , [64,2,0,0] , [2,0,0,0] ]
//var board:Array<Array<Int>> = [ [1024,16,2,0] , [256,4,2,0] , [64,2,0,0] , [2,0,0,0] ]

// 二维数组获取元素
board[0]
board[0][0]

// 获取二维数组两个维度的信息
board.count
board[0].count

// Swift中的二维数组,每一维度的元素数目可以不同
board[0].append(0)
board

// 为二维数组的第一个维度添加的元素是一个数组
board.append([0,0,0,0])
board += [ [0,0,0,0] ]
board

五、NSArray

NSArray是一个类,Array是一个结构体

var array1 = [] //会默认是NSArray,swift3.0之后该写法废除

var array2 = [1,2,3,4,5] as NSArray

var array3: NSArray = [1,"hello"]

var array4: [NSObject] = [1 as NSObject,"hello" as NSObject]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数组
swift
swift解析json数组、swiftyjson解析数组、swift3 解析json数组、swift timer用法、swift masonry用法,以便于您获取更多的相关知识。

时间: 2024-09-01 11:29:58

Swift数组详细用法解析_Swift的相关文章

marquee的详细用法解析_CSS/HTML

先看下 marquee 的html 属性  <MARQUEE ALIGN="-"  BEHAVIOR="-"  BGCOLOR="-"  DIRECTION="-"  HEIGHT="-"  WIDTH="-"  HSPACE="-"  VSPACE="-"  LOOP="-"  SCROLLAMOUNT="-&

无间断滚动marquee的详细用法解析_javascript技巧

新闻一 我是打头的 我向上运动 我向上运动 我向上运动 新闻二 我是打头的 我向上运动 我向上运动 我向上运动 新闻三 我是打头的 我向上运动 我向上运动 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

Python列表list数组array用法实例解析_python

本文以实例形式详细讲述了Python列表list数组array用法.分享给大家供大家参考.具体如下: Python中的列表(list)类似于C#中的可变数组(ArrayList),用于顺序存储结构.   创建列表   复制代码 代码如下: sample_list = ['a',1,('a','b')]   Python 列表操作 复制代码 代码如下: sample_list = ['a','b',0,1,3]   得到列表中的某一个值 复制代码 代码如下: value_start = sampl

探讨Swift数组和字典_Swift

数组是一个存储多个相同类型的值的有序列表.相同的值,可以在不同的位置出现在一个数组中的多个次. Swift数组是具体的.他不同于Objective-C的的NSArray和NSMutableArray里的类,它可以存储任何类型的对象,不提供有关它们返回的对象的性质的任何信息.在斯Swift,一个特定的数组可以存储的值类型总是明确的,无论是通过显式类型批注,或通过类型推断,而不一定是类类型.如果创建诠释值的数组,例如,你不能插入比Int值以外的任何值到该数组.Swift数组是类型安全的,并且总是清楚

jquery 遍历数组与数组详细说明

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-

Thinkphp 中 distinct 的用法解析_php实例

TP中distinct()的用处主要是去除重复的值 在Thinkphp手册中也详细说明了(链接:http://document.thinkphp.cn/manual_3_2.html) 下面是我的个人例子: 显示的是这样的 在加入distinct的话: 显示结果为 下面为贴出来的代码 $offernum = M('offer')->distinct(true)->where('order_id='.$order_id)->field('user_id,number')->selec

Thinkphp 中 distinct 的用法解析

TP中distinct()的用处主要是去除重复的值 在Thinkphp手册中也详细说明了(链接:http://document.thinkphp.cn/manual_3_2.html#distinct) 下面是我的个人例子: 显示的是这样的 在加入distinct的话: 显示结果为 下面为贴出来的代码 $offernum = M('offer')->distinct(true)->where('order_id='.$order_id)->field('user_id,number')-

文件/目录权限设置命令chmod的详细用法

chmod是文件/目录权限设置的命令,在Linux中经常遇到,本博文以下总结chmod的详细用法.  Linux/Unix的档案调用权限分为三级,即档案拥有者user.群组group.其他other.u表示该档案的拥有者,g表示与该档案的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是. + 表示增加权限.- 表示取消权限.= 表示唯一设定权限. r表示可读取,w表示可写入,x表示可执行.   举例说明: (1).将档案file1.txt 设为所有人皆可读取: chmo

PHP第七课 数组的用法2

学习纲要: 1.了解数组函数 2.随机输出验证码 1.数组函数: 数组函数: //作用:提供了很多官方写的非常有用的代码段,提高编写速度. 1.数组的键值操作函数 2.统计数组的元素和唯一性 3.使用回调函数处理数组的函数 4.数组的排序函数 5.拆分,合并,分解与结合函数 6.数组与数据结构 7.其他有用的数组处理函数 数组的键值操作函数: 1.array_values(); 模拟获取key和value的值 <?php $arr=array("name"=>"u