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-UIScrollerView里有两个tableView
一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...
- 我曾经的第一个OC程序
一. OC简介 C语言的基础上,增加了一层最小的面向对象语法 完全兼容C语言 可以在OC代码中混入C语言代码,甚至是C++代码 可以使用OC开发Mac OS X平台和iOS平台的应用程序 二. OC语 ...
- 用GCD线程组与GCD信号量将异步线程转换为同步线程
有时候我们会碰到这样子的一种情形: 同时获取两个网络请求的数据,但是网络请求是异步的,我们需要获取到两个网络请求的数据之后才能够进行下一步的操作,这个时候,就是线程组与信号量的用武之地了. #impo ...
- 常见HTTP状态码
常见HTTP状态码 200 OK 301 Moved Permanently 302 Found 304 Not Modified 307 Temporary Redirect 400 Bad Req ...
- DNS劫持解决方法
刚在家上网,发自己的浏览器竟然还会弹出页面广告(我浏览器装了屏蔽广告的浏览器应用,理论上就不会出现什么弹出来的广告). 于是自己仔细研究了下,发现在易迅的页面竟然嵌套了一个iframe,首先易迅肯定不 ...
- php设计模式 工厂、单例、注册树模式
Source Code Pro字体 easyphp 命名空间:隔离类和函数,php5.3以后 //test5.php<?php namespace Test5;//命名空间必须是程序脚本的第一 ...
- JS怎么动态命名变量名
[摘要]本文是对JS怎么动态命名变量名的讲解,对学习JavaScript编程技术有所帮助,与大家分享. 1.用eval,例子: 1 2 3 4 5 6 7 <script> var Thr ...
- 各类 HTTP 返回状态代码详解
完整版 1**(信息类):表示接收到请求并且继续处理 100——客户必须继续发出请求 101——客户要求服务器根据请求转换HTTP协议版本 2**(响应成功):表示动作被成功接收.理解和接受 200— ...
- Java中静态类型检查是如何进行的
以下内容来自维基百科,关于静态类型检查和动态类型检查的解释: 静态类型检查:基于程序的源代码来验证类型安全的过程: 动态类型检查:在程序运行期间验证类型安全的过程: Java使用静态类型检查在编译期间 ...
- 编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上。
package zuoye; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; pub ...