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)是无序无重 ...
随机推荐
- 【代码笔记】iOS-两个时间字符串的比较
一,效果图. 二,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the ...
- Android中将xml布局文件转化为View树的过程分析(上)
有好几周没写东西了,一方面是因为前几个周末都有些事情,另外也是因为没能找到好的写作方向,或者说有些话题 值得分享.写作,可是自己积累还不够,没办法只好闷头继续研究了.这段时间一边在写代码,一边也在想A ...
- 一次对MKMapView的性能优化
一次对MKMapView的性能优化 前言 最近做的项目主要是LBS这块 主打成员定位功能 我们的UI设计是这样的 乍一看上去是挺好挺美观的 不同的人会显示不同的头像 可是当人扎堆的时候 问题就来了 当 ...
- RDVTabBarController的基本使用 以及tabbar的防止双点击方法
RDVTabBarController这个库写得相当不错,所以今天就简单介绍下它的基本使用,看里面可以清楚的知道代码规范的重要性,这个库的使用方法和官方的相识 下载地址:https://github. ...
- symfony2 controller
1.基本概念 一次http请求 输入(Request):header信息.get信息.post数据等 输出(Response):symfony经过处理返回的信息,包括页面.json字符串.URL ...
- Git笔记1
1.简介 1.1 GIT(分布式版本控制系统) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非 ...
- 密码校验正则表达式(java 环境)
密码校验需求: 1) 密码控制只能输入字母.数字.特殊符号(~!@#$%^&*()_+[]{}|\;:'",./<>?)2) 长度 6-16 位,必须包括字母.数字.特殊 ...
- 0021 Java学习笔记-面向对象-包、构造器
封装 面向对象的三大特征: 封装 继承 多态 封装: 将对象的状态信息隐藏,不允许外部程序直接访问 通过该类提供的方法来访问和操作 有啥用: 隐藏类的实现细节 在方法中加入控制逻辑,限制对成员变量的不 ...
- java web 中的servlet讲解
首先,解释一下解释一下什么是servlet?说一说Servlet的生命周期? servlet有良好的生存期的定义,包括加载和实例化.初始化.处理请求以及服务结束.这个生存期由javax.servlet ...
- C++/CLI——读书笔记《Visual C++/CLI从入门到精通》 第Ⅳ部分
=================================版权声明================================= 版权声明:本文为博主原创文章 未经许可不得转载 请通过右 ...