Swift 数组用于存储相同类型的值的顺序列表。Swift 要严格检查,不允许不同类型的值在同一个数组中

声明一个数组

var someArray = [SomeType]()
var someArray = [SomeType](count: NumbeOfElements, repeatedValue: InitialValue)
var someInts = [Int](count: , repeatedValue: )//声明一个三个容量的数组,初始值为0
var someInts:[Int] = [, , ]//声明一个int类型的初始值为中括号内的数组

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

var someVar = someArray[index]

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

import Cocoa

var someInts = [Int](count: , repeatedValue: )//创建一个3个空间的可变数组,初始值都是10,数组类型为int类型

var someVar = someInts[]

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
Value of second element is
Value of third element is

修改数组

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

import Cocoa

var someInts = [Int]()//初始化一int类型的空数组
someInts.append()//添加20
someInts.append()//添加30
someInts += []//添加40 var someVar = someInts[] 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
Value of second element is
Value of third element is

直接给已经存在的数组元素赋值就可以修改数组元素中的值

import Cocoa

var someInts = [Int]()

someInts.append()
someInts.append()
someInts += [] // Modify last element
someInts[] = var someVar = someInts[] 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
Value of second element is
Value of third element is

可以使用 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 =
Total items in intsB =
Total items in intsC =

空属性

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

import Cocoa

var intsA = [Int](count:, repeatedValue: )
var intsB = [Int](count:, repeatedValue: )
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-Array(数组)的更多相关文章

  1. iOS - Swift Array 数组

    前言 public struct Array<Element> : CollectionType, MutableCollectionType, _DestructorSafeContai ...

  2. swift Array 数组

    // //  main.Swift //  swift数组 // //  Created by zhangbiao on 14-6-15. //  Copyright (c) 2014年 理想. Al ...

  3. [Swift]Array数组的swapAt函数

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  4. iOS -Swift 3.0 -Array(数组与可变数组相关属性及用法)

    // // ViewController.swift // Swift-Array // // Created by luorende on 16/9/12. // Copyright © 2016年 ...

  5. Swift中实现Array数组和NSArray数组的相互转换与遍历

    Array是Swift中的数组数据类型.而NSArray是OC中的数组数据类型.两者有差别有联系.在Swift中有时候难免会使用到OC中的一些东西.今天我们就来Swift中使用NSArray和Arra ...

  6. Swift3 - String 字符串、Array 数组、Dictionary 字典的使用

    Swift相关知识,本随笔为 字符串.数组.字典的简单使用,有理解.使用错误的地方望能指正. ///************************************************** ...

  7. 窥探Swift之数组安全索引与数组切片

    今天是元宵节,祝大家元宵节快乐!在Swift中的数组和字典中下标是非常常见的,数组可以通过索引下标进行元素的查询,字典可以通过键下标来获取相应的值.在使用数组时,一个常见的致命错误就是数组越界.如果在 ...

  8. 窥探Swift之数组与字典

    说到数组和字典,只要是编过程的小伙伴并不陌生.在Swift中的数组与字典也有着一些让人眼前一亮的特性,今天的博客就来窥探一下Swift中的Array和Dictionary.还是沿袭之前的风格,在介绍S ...

  9. Swift 之数组与字典

    http://www.cocoachina.com/swift/20151230/14802.html 说到数组和字典,只要是编过程的小伙伴并不陌生.在Swift中的数组与字典也有着一些让人眼前一亮的 ...

  10. 了解PHP中的Array数组和foreach

    1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组    . 2.例子:一般的数组 这里,我 ...

随机推荐

  1. angularjs 中的setTimeout(),setInterval() / $interval 和 $timeout

    $interval window.setInterval的Angular包装形式.Fn是每次延迟时间后被执行的函数. 间隔函数的返回值是一个承诺.这个承诺将在每个间隔刻度被通知,并且到达规定迭代次数后 ...

  2. ngSanitize和$sce

    (angular-ngSanitize模块-$sanitize服务详解) 本篇主要讲解angular中的$sanitize这个服务.此服务依赖于ngSanitize模块. 要学习这个服务,先要了解另一 ...

  3. js面向对象

    什么事面向对象 用对象的思想去写代码,就是面向对象编程 面向对象编程(OOP)的特点 抽象:抓住核心问题 封装:只能通过对象来访问方法 继承:从已有对象上继承出新的对象 多态:多对象的不同形态 对象的 ...

  4. Mac OS X 中一些常用的命令行技巧

    一.网络设置相关 1.网卡的物理地址的动态重置 出于某些需求,例如网络中的 IP 地址或网络帐号与网卡物理地址绑定,使得多个设备无法切换上网,可尝试临时更改物理地址.不过,系统偏好设置是不能修改网卡物 ...

  5. Qt-导入第三方库

    Qt提供了显式和隐式导入第三方库方法,本文只介绍显示导入方法. 第三方提供的库文件包括ControlCAN.h,ControlCAN.dll和ControlCAN.lib.将ControlCAN.h和 ...

  6. [每日一记] Python报错 IndentationError: unexpected indent

    IndentationError: unexpected indent 代码缩进出现错误 今天这个报错的原因是,早些时候的代码里Tab和空格混起来用了,,,[不是我...是编辑器的锅 不过我已经把Su ...

  7. js日期相关

    时间戳转正常日期时间 1469512964000 —> 2016/7/26 下午2:02 var getLocalTime = function(nS) { // 13位时间戳 return n ...

  8. android 6.0 高通平台sensor 工作机制及流程(原创)

    最近工作上有碰到sensor的相关问题,正好分析下其流程作个笔记. 这个笔记分三个部分: sensor硬件和驱动的工作机制 sensor 上层app如何使用 从驱动到上层app这中间的流程是如何 Se ...

  9. STM32F412应用开发笔记之二:基本GPIO控制

    NUCLEO-F412ZG板子上的元器件并没有完全焊接,除去ST-LINK部分和电源部分后,还有用一个USB主机接口,三个LED灯和两个按钮,不过很多功能引脚都已经引到了插针.查看原理图可发现,由原理 ...

  10. iscroll.js 下拉刷新和上拉加载

    html代码如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...