基本的数组结构Array:

var shoppingList: String[] = ["Eggs", "Milk"]

这个shoppingList和传统意义上的数组是没区别的。但它却又可以这样:

println("The shopping list contains \(shoppingList.count) items.")

shoppingList.count的这个count是T(继承自ArrayType)的属性,可以获取当前数组的长度。

同时,shoppingList还可以通过 append(只能添加单个元素)或者+=(可添加一个或者多个元素)运算符添加新元素。

 var shoppingList: String[] = ["Eggs", "Milk"]
shoppingList.append("Banana")
shoppingList += "Apple"
shoppingList += ["WaterMelon","Tomato"]

也可以直接通过下标来替换一个或者多个元素

        var shoppingList: String[] = ["Eggs", "Milk"]
shoppingList.append("Bananas")
shoppingList += "Apples"
shoppingList += ["WaterMelons","Tomatos","Chocolate"]
shoppingList += ["",""]
shoppingList[7...8] = ["Cola","Cookies"]

  

可以通过下标来获取指定位置的一个或者多个元素

var firstElement = shoppingList[0]
var mulElements = shoppingList[4...6]

在指定位置插入新元素

shoppingList.insert("Cheese",atIndex: 4)
for item in shoppingList{
println(item);
}

移除元素有2种方法,1,直接移除数组最后一个元素。 2,移除指定下标位置的元素

        shoppingList.removeLast()
for item in shoppingList{
println(item);
}
shoppingList.removeAtIndex(0)
for item in shoppingList{
println(item);
}

如果想移除数组中的某个指定的元素,没有直接的方法。只能遍历并移除:

        for (index,value) in enumerate(shoppingList){
println("Item \(index+1): \(value)")
if(value == "Bananas"){
shoppingList.removeAtIndex(index);
}
}

其实这个方法按微软的说法的话,是不够严谨的。removeAtIndex方法执行后,返回值是一个T类型。应该是shoppingList的一个copy,应该是不可以影响到当前操作的数组的。我跟踪了一下,事实上这个方法目前是会影响到当前的数组的。

数组初始化

可以直接初始化指定数据类型的空数组,留着后面再填充数据。

var someInts = Int[]()
println("someInts is of type Int[] with \(someInts.count) items.")

可看到输出的结果为0个items在数组中。

也可以直接指定大小的空数组,同时指定初始化数据:

var threeDoubles = Double[](count:3, repeatedValue:0.0)
println("threeDoubles is of type Double[] with \(threeDoubles.count) items")

可以看到,当前数组中有3个值都是0.0的item. 这个跟T类型的构造函数有关:

init(count: Int, repeatedValue: T)

  

总结:

1)swift的数组是通过[]来定义数据类型,()来指定数据的。

2)可以通过insert,append和+=操作符添加数组

3)也可以通过构造函数init(count: Int, repeatedValue: T)来初始化指定大小和初始值的数组

4)可以通过removeLast和removeAtIndex来移除指定的item

5)可以通过下标来获取或者设置指定的item

        var shoppingList: String[] = ["Eggs", "Milk"]
shoppingList.append("Bananas")
shoppingList += "Apples"
shoppingList += ["WaterMelons","Tomatos","Chocolate"]
shoppingList += ["",""]
shoppingList[7...8] = ["Cola","Cookies"]
var firstElement = shoppingList[0]
var mulElements = shoppingList[4...6]
shoppingList.insert("Cheese",atIndex: 4)
// for item in shoppingList{
// println(item);
// }
shoppingList.removeLast()
// for item in shoppingList{
// println(item);
// }
shoppingList.removeAtIndex(0)
// for item in shoppingList{
// println(item);
// }
for (index,value) in enumerate(shoppingList){
println("Item \(index+1): \(value)")
if(value == "Bananas"){
shoppingList.removeAtIndex(index);
}
} var someInts = Int[]()
println("someInts is of type Int[] with \(someInts.count) items.") var threeDoubles = Double[](count:3, repeatedValue:0.0)
println("threeDoubles is of type Double[] with \(threeDoubles.count) items") //println("The fruits are \(mulElements.count) at position 4-6 in shopping list")
//println("The shopping contains \(shoppingList.count) items")

  

  

swift 集合类型(一)的更多相关文章

  1. 浅谈Swift集合类型

    Swift 的集合表现形式由数组和字典组成.它可以完美的存储任何呢想存储的东西. 数组是一个同类型的序列化列表集合,它用来存储相同类型的不同值.字典也是一个数组,但它的存值方式类似于Map,通过一对一 ...

  2. swift 集合类型(二)

    说到swift的集合类型,就不得不谈到Dictionary.包含一个键值对组合的集合. var air = ["name":"warner","tit ...

  3. Swift 集合类型

     Swift语言提供数组和字典的集合类型  Swift 语言里的数组和字典中存储的数据值类型必须明确 ,即数组中只能存放同类型的数据. 1: 数组 数组的创建 var shoppingList: St ...

  4. 6.Swift教程翻译系列——Swift集合类型

    英文版PDF下载地址http://download.csdn.net/detail/tsingheng/7480427 Swift提供数组和字典两种集合类型.用来存储很多值的情况.数组有序的存储一组同 ...

  5. 【Swift学习】Swift编程之旅---集合类型之数组(六)

    swift提供了3种主要的集合类型,array,set,dictionary.本节介绍array. 数组是存储有序的相同类型的集合,相同的值可以多次出现在不同的位置. 注意: swift的Array类 ...

  6. Swift的基础,操作符,字符串和集合类型

    这篇文章主要讲解苹果Swift官方指南的第二章前四节的要点内容,如果想看完整的英文文档可以去苹果开发者页面下载. Basic 声明常量let 声明变量var 注释依旧使用"//" ...

  7. Swift中的集合类型

    一.引子: 在2014年10月TIOBE编程语言排行榜中,Swift位居第18位,从2014WWDC发布会首次公布至今不到半年时间,swift一直受到编程人 员的追捧,其热衷程度并不亚于当红巨星Tay ...

  8. The Swift Programming Language-官方教程精译Swift(5)集合类型 -- Collection Types

    Swift语言提供经典的数组和字典两种集合类型来存储集合数据.数组用来按顺序存储相同类型的数据.字典虽然无序存储相同类型数据值但是需要由独有的标识符引用和寻址(就是键值对).   Swift语言里的数 ...

  9. Swift 学习- 05 -- 集合类型

    // 集合类型 // swift 提供 Arrays , Sets 和 Dictionaries 三种基本的集合类型用来存储数据 , 数组(Arrays) 是有序数据的集, 集合(Sets)是无序无重 ...

随机推荐

  1. 【读书笔记】iOS-使用Web Service-基于客户端服务器结构的网络通信(一)

    Web Service技术是一种通过Web协议提供服务,保证不同平台的应用服务可以互操作,为客户端程序提供不同的服务. 目前3种主流的Web Service实现方案用:REST,SOAP和XML-RP ...

  2. Atitit.android js 的键盘按键检测Back键Home键和Menu键事件

    Atitit.android js 的键盘按键检测Back键Home键和Menu键事件 1. onKeyDown @Override public boolean onKeyDown(int keyC ...

  3. NPOI对Excel的操作(Sheet转DataTable、List<T>)

    通过NPOI对Excel进行操作,这里主要是读取的操作.封装到ExcelHelper操作类中. 1 using System.Collections.Generic; 2 using NPOI.HSS ...

  4. Javascript 优化项目代码技巧之语言基础(一)

        Javascript的弱类型以及函数作用域等规则使用编写Javascript代码极为容易,但是编写可维护.高质量的代码却变得十分困难,这个系列的文章将总结在项目开发过程中,能够改善代码可读性. ...

  5. OSGI.NET 框架浅析

    关于osgi.net ,想必大家也听说过,以下是自己在学习osgi.net 过程中整理出来的内容,供大家学习参与使用. 1.  UIOSP 开放工厂框架架构 开放工厂所有插件基于OSGi.NET面向服 ...

  6. RFID应用范围

    RFID应用范围 (1)物流: 物流过程中的货物追踪,信息自动采集,仓储应用,港口应用,邮政,快递 (2)零售: 商品的销售数据实时统计,补货,防盗 (3)制造业: 生产数据的实时监控,质量追踪,自动 ...

  7. 简单看看这两个类 String和StringBuilder

    我记得以前在园子里面讨论这两个类的文章有很多很多,并且还拿出了很多的测试报告,在什么情况下,谁比谁快,在什么情况下,该用谁 不该用谁等等这些,我这里就不比较了,我就简单看看他们里面的内部实现,那就先看 ...

  8. java 读写word java 动态写入 模板文件

    import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import ja ...

  9. ES6新增值比较函数Object.is

    在这之前我们比较值使用两等号 “==” 或 三等号“===”, 三等号更加严格,只要比较两方类型不同立即返回false. 另外,有且只有一个值不和自己相等,它是NaN 现在ES6又加了一个Object ...

  10. ab 性能测试工具的使用(Web并发测试)

    1.下载 http://pan.baidu.com/s/1hrlAbI0 2.命令介绍 参数的介绍 n在测试会话中所执行的请求个数.默认时,仅执行一个请求. -c一次产生的请求个数.默认是一次一个. ...