基本的数组结构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-带索引的tableView

    一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...

  2. 自己用js写的日历(在考勤中使用,显示员工的日期的考勤情况)

    1.HTML部分 <div id="AttendanceDataDetailDiv"> <div class="A_close"> &l ...

  3. 手机屏幕滑动效果框架——flipsnap

    下午有时间,研究了下手机网页开发方面的内容.其中关于手机手势滑屏操作.发现有比较好的jquery 插件--flipsnap. 官方网站:http://pxgrid.github.com/js-flip ...

  4. JSP中request getParameter和getAttribute不同(转载)

    (1)request.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据,,request.setAttribute()和getAttribute()只是在 ...

  5. 3、Javascript学习 - IT软件人员学习系列文章

    接下来,我们开始进入Javascript语言的学习. Javascript语言是一种解释性的语言,不同于ASP.NET.C#语言的这种编译性的语言.它随着HTML网页的发布而发布,就是说嵌入到HTML ...

  6. HDFS 和YARN HA 简介

    HDFS: 基础架构 1.NameNode(Master) 1)命名空间管理:命名空间支持对HDFS中的目录.文件和块做类似文件系统的创建.修改.删除.列表文件和目录等基本操作. 2)块存储管理. 使 ...

  7. 文件件监听器,android系统拍照功能调用后删除系统生成的照片

    先说说要实现的功能: android调用系统拍照功能实时 预览 删除 上传 保存 (用户不能再本地文件夹中看到拍的照片) 再说说遇到的问题: 1.调用系统拍照在系统自带的拍照文件夹中生成一张随机命名图 ...

  8. Innodb行锁源码学习(一)

    Innodb是mysql数据库中目前最流行的存储引擎,innodb相对其它存储引擎一个很大的特点是支持事务,并且支持行粒度的锁.今天我重点跟大家分享下innodb行锁实现的基础知识.由于篇幅比较大,文 ...

  9. Kafka 分布式的,基于发布/订阅的消息系统

    Kafka是一种分布式的,基于发布/订阅的消息系统.主要设计目标如下: 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能. 高吞吐量:即使是非常 ...

  10. java自定义Annotation(载自百度文库)

    java中自定义annotation需要@interface关键字和用到几个内置annotation. 用到的注解有@Target,@Retention,@Documented,@Inherited  ...