swift 集合类型(一)
基本的数组结构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 集合类型(一)的更多相关文章
- 浅谈Swift集合类型
Swift 的集合表现形式由数组和字典组成.它可以完美的存储任何呢想存储的东西. 数组是一个同类型的序列化列表集合,它用来存储相同类型的不同值.字典也是一个数组,但它的存值方式类似于Map,通过一对一 ...
- swift 集合类型(二)
说到swift的集合类型,就不得不谈到Dictionary.包含一个键值对组合的集合. var air = ["name":"warner","tit ...
- Swift 集合类型
Swift语言提供数组和字典的集合类型 Swift 语言里的数组和字典中存储的数据值类型必须明确 ,即数组中只能存放同类型的数据. 1: 数组 数组的创建 var shoppingList: St ...
- 6.Swift教程翻译系列——Swift集合类型
英文版PDF下载地址http://download.csdn.net/detail/tsingheng/7480427 Swift提供数组和字典两种集合类型.用来存储很多值的情况.数组有序的存储一组同 ...
- 【Swift学习】Swift编程之旅---集合类型之数组(六)
swift提供了3种主要的集合类型,array,set,dictionary.本节介绍array. 数组是存储有序的相同类型的集合,相同的值可以多次出现在不同的位置. 注意: swift的Array类 ...
- Swift的基础,操作符,字符串和集合类型
这篇文章主要讲解苹果Swift官方指南的第二章前四节的要点内容,如果想看完整的英文文档可以去苹果开发者页面下载. Basic 声明常量let 声明变量var 注释依旧使用"//" ...
- Swift中的集合类型
一.引子: 在2014年10月TIOBE编程语言排行榜中,Swift位居第18位,从2014WWDC发布会首次公布至今不到半年时间,swift一直受到编程人 员的追捧,其热衷程度并不亚于当红巨星Tay ...
- The Swift Programming Language-官方教程精译Swift(5)集合类型 -- Collection Types
Swift语言提供经典的数组和字典两种集合类型来存储集合数据.数组用来按顺序存储相同类型的数据.字典虽然无序存储相同类型数据值但是需要由独有的标识符引用和寻址(就是键值对). Swift语言里的数 ...
- Swift 学习- 05 -- 集合类型
// 集合类型 // swift 提供 Arrays , Sets 和 Dictionaries 三种基本的集合类型用来存储数据 , 数组(Arrays) 是有序数据的集, 集合(Sets)是无序无重 ...
随机推荐
- oc TableView 分割线(separator)部分显示问题
问题:当TableView的cell不能显示完整个屏幕(屏幕有剩余),则没有显示cell的地方也会显示分割线,这不是我们想要的,正常情况下,如果没有cell则应没有分割线.如下图所示:左图为遇到问题, ...
- android环境搭建
Android开发环境的两种安装方式:JDK+Eclipse+ADT直接下载集成的开发工具,解压即可用.下载地址:http://pan.baidu.com/s/1dD3s3bN ,不管采用哪种安装方式 ...
- SQL Server 分区表补充说明
分区教程参阅:http://database.9sssd.com/mssql/art/951 切换分区(归档):http://technet.microsoft.com/zh-cn/library/m ...
- sql 如果关联表 没有值 设置 默认值
SELECT *FROM ( SELECT t.task_name, t.status AS task_status, coalesce( r.task_ref_id, 999 ) AS task_ ...
- (视频) 《快速创建网站》2.1 在Azure上创建网站及网站运行机制
现在让我们开始一天的建站之旅. 本文是<快速创建网站>系列的第2篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http:// ...
- spring 依赖注入(IOC DI)
依赖注入(IOC DI) 依赖注入的两种方式: 1. set注入 Spring要求使用set注入方式的时候,Bean需要提供一个无参数的构造方法.并提供一个属性的setter方法.例如: packag ...
- 数据分页处理系列之三:Neo4j图数据分页处理
首先简单介绍下Neo4j,Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中,它是一个嵌入式的.基于磁盘的.具备完全的事务特性的Java持久化引擎,但是它将结构化数 ...
- ES6函数剩余参数(Rest Parameters)
我们知道JS函数内部有个arguments对象,可以拿到全部实参.现在ES6给我们带来了一个新的对象,可以拿到除开始参数外的参数,即剩余参数(废话好多 O(∩_∩)O~). 这个新的对象和argume ...
- nodejs学习资料
官方文档 阿里nodejs7天快速教程 从零开始nodejs系列文章 一个周末掌握IT前沿技术之node.js篇 nodejs中文api文档 nodejs中文api文档(0.12.2) node ...
- Eclipse 各种小图标的含义
Eclipse的Package Explorer和Outline中用图标表示了很多内容,其实能看懂这些图标在编程中也是很有用的. 绿色的小圆表示公有类型:如果是实心的就是函数(),如果是圈就表示是变量 ...