Swift编程中数组的使用方法指南

 更新时间:2015年11月03日 15:12:18   投稿:goldensun  
这篇文章主要介绍了Swift编程中数组的使用方法指南,是Swift入门学习中的基础知识,需要的朋友可以参考下

Swift 数组用于存储相同类型的值的顺序列表。Swift 要严格检查,它不允许错误地在数组中存放了错误的类型。

如果赋值创建数组到一个变量,它总是可变的,这意味着可以通过添加元素来改变它, 删除或更改其项目,但如果分配一个数组常量到则该数组,则数组是不可被改变的, 也就它的大小和内容不能被改变。

创建数组
可以使用下面的初始化程序语法来创建某种类型的空数组:

复制代码 代码如下:

var someArray = [SomeType]()

下面是创建一个给定的大小,并用初始值的数组的语法:
复制代码 代码如下:

var someArray = [SomeType](count: NumbeOfElements, repeatedValue: InitialValue)

下面是一个例子,以创建具有3个元素并初始值为零的 int 类型空数组:
复制代码 代码如下:

var someInts = [Int](count: 3, repeatedValue: 0)

下面是一个创建三个元素的数组,并指定三个值的数组的例子:
复制代码 代码如下:

var someInts:[Int] = [10, 20, 30]

访问数组
可以使用下标语法从数组中检索对应值,传递数组名后方括号内的索引对应的值,如下:
复制代码 代码如下:

var someVar = someArray[index]

在这里,指数从0开始,这意味着可以使用索引0来访问第一个元素,第二元素可以通过使用索引1进行访问,其它类似。让我们来看看下面创建,初始化和访问数组的例子:
复制代码 代码如下:

import Cocoa

var someInts = [Int](count: 3, repeatedValue: 10)

var someVar = someInts[0]

println( "Value of first element is \(someVar)" )
println( "Value of second element is \(someInts[1])" )
println( "Value of third element is \(someInts[2])" )


当上述代码被编译和执行时,它产生了以下结果:

Value of first element is 10
Value of second element is 10
Value of third element is 10

修改数组
可以使用 append() 方法或加法赋值运算符(+=)将新的项目添加到数组的末尾,在这里首先创建一个空的数组,然后添加新的元素到数组中,如下所示:

复制代码 代码如下:

import Cocoa

var someInts = [Int]()

someInts.append(20)
someInts.append(30)
someInts += [40]

var someVar = someInts[0]

println( "Value of first element is \(someVar)" )
println( "Value of second element is \(someInts[1])" )
println( "Value of third element is \(someInts[2])" )


当上述代码被编译和执行时,它产生了以下结果:

Value of first element is 20
Value of second element is 30
Value of third element is 40

可以通过分配一个在给定的索引处新的值修改数组的现有元素,如在下面的例子:

复制代码 代码如下:

import Cocoa

var someInts = [Int]()

someInts.append(20)
someInts.append(30)
someInts += [40]

// Modify last element
someInts[2] = 50

var someVar = someInts[0]

println( "Value of first element is \(someVar)" )
println( "Value of second element is \(someInts[1])" )
println( "Value of third element is \(someInts[2])" )


当上述代码被编译和执行时,它产生了以下结果:

Value of first element is 20
Value of second element is 30
Value of third element is 50

迭代/遍历数组
可以使用 for-in 循环迭代级数,在下面的例子是数组的整个集值,如下图所示:

复制代码 代码如下:

import Cocoa

var someStrs = [String]()

someStrs.append("Apple")
someStrs.append("Amazon")
someStrs += ["Google"]

for item in someStrs {
   println(item)
}


当上述代码被编译和执行时,它产生了以下结果:

Apple
Amazon
Google

也可以使用 enumerate() 函数,如下面的例子所示,它返回索引及对应的值:

复制代码 代码如下:

import Cocoa

var someStrs = [String]()

someStrs.append("Apple")
someStrs.append("Amazon")
someStrs += ["Google"]

for (index, item) in enumerate(someStrs) {
   println("Value at index = \(index) is \(item)")
}


当上述代码被编译和执行时,它产生了以下结果:

Value at index = 0 is Apple
Value at index = 1 is Amazon
Value at index = 2 is Google

两个数组相加
使用加法运算符(+),以添加的相同类型的数组,这将产生新的数组是来自两个数组值相加组合后的数组,如下:

复制代码 代码如下:

import Cocoa

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)

var intsC = intsA + intsB

for item in intsC {
   println(item)
}


当上述代码被编译和执行时,它产生了以下结果:

2
2
1
1
1

count 属性
可以使用只读计算 (count) 数组属性,找出下面显示出数组中元素的个数:

复制代码 代码如下:

import Cocoa

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)

var intsC = intsA + intsB

println("Total items in intsA = \(intsA.count)")
println("Total items in intsB = \(intsB.count)")
println("Total items in intsC = \(intsC.count)")


当上述代码被编译和执行时,它产生了以下结果:

Total items in intsA = 2
Total items in intsB = 3
Total items in intsC = 5

空属性
使用只读数组的空属性(isEmpty)找出一个数组是否为空,如下图所示:

复制代码 代码如下:

import Cocoa

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)
var intsC = [Int]()

println("intsA.isEmpty = \(intsA.isEmpty)")
println("intsB.isEmpty = \(intsB.isEmpty)")
println("intsC.isEmpty = \(intsC.isEmpty)")


当上述代码被编译和执行时,它产生了以下结果:

intsA.isEmpty = false
intsB.isEmpty = false
intsC.isEmpty = true

相关文章

  • Swift 中如何使用 Option Pattern 改善可选项的 API 设计

    Swift 中如何使用 Option Pattern 改善可选项的 API 设计

    这篇文章主要介绍了Swift 中如何使用 Option Pattern 改善可选项的 API 设计,帮助大家更好的进行ios开发,感兴趣的朋友可以了解下
    2020-10-10
  • Swift 字符串类型及常用方法详解总结

    Swift 字符串类型及常用方法详解总结

    Swift 字符串是一系列字符的集合。例如 "Hello, World!" 这样的有序的字符类型的值的集合,它的数据类型为 String,接下来文章将详细探讨
    2021-11-11
  • Swift方法调度之类的普通方法底层探究

    Swift方法调度之类的普通方法底层探究

    这篇文章主要介绍了Swift-方法调度-类的普通方法底层探究,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-11-11
  • Swift 4.0中如何引用3.0的第三方库

    Swift 4.0中如何引用3.0的第三方库

    这篇文章主要给大家介绍了关于在Swift 4.0中如何引用3.0第三方库的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-01-01
  • Swift实现JSON转Model的方法及HandyJSON使用讲解

    Swift实现JSON转Model的方法及HandyJSON使用讲解

    这篇文章给大家介绍了Swift实现JSON转Model的方法及HandyJSON使用讲解,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-07-07
  • swiftui开发之padding默认值设置详解

    swiftui开发之padding默认值设置详解

    这篇文章主要为大家介绍了swiftui开发之padding默认值设置详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Swift 指针底层探索分析

    Swift 指针底层探索分析

    这篇文章主要为大家介绍了Swift 指针底层探索分析,主要包括指针的基本使用,以及指针的内存绑定进行详细分析,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Swift使用表格组件实现单列表

    Swift使用表格组件实现单列表

    这篇文章主要为大家详细介绍了Swift使用表格组件实现单列表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • SwiftUI图片缩放、拼图等处理教程

    SwiftUI图片缩放、拼图等处理教程

    SwiftUI是一种使用Swift语言在苹果设备上构建用户界面的创新且简单的方式,下面这篇文章主要给大家介绍了关于SwiftUI图片缩放、拼图等处理的相关资料,需要的朋友可以参考下
    2021-08-08
  • 程序迁移到swift 3.0的一些实用技巧

    程序迁移到swift 3.0的一些实用技巧

    Swift项目为适配iOS10,无奈只能更新Xcode 8 ,可是发现一入3.0深似海,从此幸福是路人。于是边摸索边修改,终于完成了代码迁移。节后在完成手头工作后,整理思路把Swift3.0迁移的一些实用技巧分享大家,需要的朋友可以参考下。
    2017-03-03

最新评论