Swift 集合类型
Swift语言提供数组和字典的集合类型
Swift 语言里的数组和字典中存储的数据值类型必须明确 ,即数组中只能存放同类型的数据。
1: 数组
数组的创建
var shoppingList: String[] = ["tset", "hell", “hell”]
var arrayInt:Int[] = [, ] var arrayIntEx = [55, 32]//使用推理类型 //空数组的创建 var someInts = Int[]()
println("\(someInts.isEmpty)")
//创建指定类型(Double)和个数(3)并设置初始值(0.0)
var threeDoubles = Double[](count: 3, repeatedValue:0.0)
数组的访问用下标访问。下标从0开始,注意不要越界了。
var arrayIntEx = [, ]
arrayIntEx[] =
println("\(arrayIntEx[1])")
数组的可修改性是依赖var或者let控制的
数组元素个数使用 count ,isEmpty检测是否位空数组
var arrayIntEx = [, ]
let count = arrayIntEx.count
let bFlag = shoppingList.isEmpty
println("\(count)\n\(bFlag)")
数组元素追加 append 。必须是var类型数组,而且追加的元素类型要和数组类型一致。同时也可以用 += 操作
var arrayIntEx = [, ]
arrayIntEx.append()
arrayIntEx +=
arrayIntEx += [, ]
println("\(arrayIntEx[2])\n\(arrayIntEx[3])\n\(arrayIntEx[4])\n\(arrayIntEx[5])\n")
数组元素指定索引号插入 insert().insert在指定索引号的时候,最大为原有元素个数+现插入的元素个数-1,这样类似于在末尾添加。insert插入后,原有的元素后移动。
var arrayIntEx = [, ]
arrayIntEx.insert(, atIndex:)
println("\(arrayIntEx)")
数组指定索引号删除 removeAtIndex
var arrayIntEx = [, , ]
arrayIntEx.removeAtIndex()
println("\(arrayIntEx)")
数组遍历用 for in
var arrayIntEx = [, , ]
for item in arrayIntEx {
println("\(item)")
}
如果要使用索引号和值,那用enumerate
var arrayTest = ["ax", "bx", "sx", "sxx"]
for (index, value) in enumerate(arrayTest)
{ println("Item: \(index + 1): \(value)")
}
数组拼接 如果两个数组类型一样,可以用+做拼接。当然结果的顺序和你拼接的时候的顺序时一致的
var arrayIntFirst = [, ]
var arrayIntSecond = [, ]
var arrayRes = arrayIntSecond + arrayIntFirst
println("\(arrayRes)")
2:字典
Swift 的字典使用时需要具体规定可以存储键和值类型 ,字典存储时没有顺序的,它依赖于一个可以哈希的keyValue值来查找。估计它是把keyValue哈希后作为key建立的红黑二茬树来查找的。
字典使用 Dictionary<KeyType, ValueType>定义 .KeyType要求可以哈希的,ValueType在一个字典里类型必须一致
字典创建
var airports: Dictionary<Int, String> = [: "yamide",: "soga"]//显示类型说明
var dicDefault = [:"xx", :"oo"]//使用了类型推理,这里比较特殊的是 2和3 不能用 2.0 和 3 ,它不支持类型的转换推理的
var namesOfIntegers = Dictionary<Int, String>()//空数组的创建
var dicEmpty = [:]
字典的可否修改时依靠var和let控制的
字典元素个数使用count 属性可以得到
var dicDefault = [:"xx", :"oo"]
println("\(dicDefault.count)")
字典元素的更新。可以用下标关键字添加
var dicDefault = [:"xx", :"oo"]
dicDefault[] = "tt"
println("\(dicDefault)")
如果下标添加的key是字典里已经有的,那么它会update数据.
updateValue(forKey:)方法可以设置或者更新特定键对应的值 .如果keyValue没有就添加,字典中已经有则更新
var dicDefault = [:"xx", :"oo"]
dicDefault[] = "tt"
dicDefault.updateValue("sx", forKey:)//add
dicDefault.updateValue("sbcd", forKey:)//update
删除 removeValueForKey
var dicDefault = [:"xx", :"oo"]
dicDefault[] = "tt"
dicDefault.updateValue("sx", forKey:)
dicDefault.removeValueForKey()
println("\(dicDefault)")
字典遍历 可以使用for in 遍历字典键值对。以元组形式返回
var dicDefault = [:"xx", :"oo"]
for(key, value)in dicDefault {
println("key:\(key) value:\(value)\n")
}
字典可以用 values 返回所有值 keys返回所有关键字
var dicDefault = [:"xx", :"oo"]
var keys = dicDefault.keys
var values = dicDefault.values
for key in keys {
println("key:\(key)\n")
}
for value in values {
println("value:\(value)\n")
}
Swift 集合类型的更多相关文章
- 浅谈Swift集合类型
Swift 的集合表现形式由数组和字典组成.它可以完美的存储任何呢想存储的东西. 数组是一个同类型的序列化列表集合,它用来存储相同类型的不同值.字典也是一个数组,但它的存值方式类似于Map,通过一对一 ...
- swift 集合类型(二)
说到swift的集合类型,就不得不谈到Dictionary.包含一个键值对组合的集合. var air = ["name":"warner","tit ...
- 6.Swift教程翻译系列——Swift集合类型
英文版PDF下载地址http://download.csdn.net/detail/tsingheng/7480427 Swift提供数组和字典两种集合类型.用来存储很多值的情况.数组有序的存储一组同 ...
- swift 集合类型(一)
基本的数组结构Array: var shoppingList: String[] = ["Eggs", "Milk"] 这个shoppingList和传统意义上 ...
- 【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)是无序无重 ...
随机推荐
- JavaScript toFixed function Not Rouding
JavaScript库函数toFixed用来将给定的数字四舍五入为指定的小数位数,W3school上有详细的介绍.众所周知,在处理小数位四舍五入的时候存在两种方式:一种是逢五进一,如5.885保留两位 ...
- C/C++文件操作1
在C语言中,文件操作都是由库函数来完成的. 在本章内将介绍主要的文件操作函数. 文件打开函数fopen fopen函数用来打开一个文件,其调用的一般形式为:文件指针名=fopen(文件名,使用文件方式 ...
- 【Android】Android开源项目分类汇总
第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Pro ...
- paip.解决问题Unable to access jarfile E:\resin-4.0.22\lib\resin.jar
paip.解决问题Unable to access jarfile E:\resin-4.0.22\lib\resin.jar 作者Attilax 艾龙, EMAIL:1466519819@qq. ...
- Asset Catalog Help (二)---Creating an Asset Catalog
Creating an Asset Catalog Create an asset catalog to simplify management of your app’s images. 创建一个a ...
- Leetcode 67 Add Binary 大数加法+字符串处理
题意:两个二进制数相加,大数加法的变形 大数加法流程: 1.倒置两个大数,这一步能使所有大数对齐 2.逐位相加,同时进位 3.倒置两个大数的和作为输出 class Solution { public: ...
- 编写西游记人物类(XiYouJiRenWu)
package java1; public class XiYouJiRenWu { double height; String name; String weapon; void printName ...
- RFID Exploration and Spoofer a bipolar transistor, a pair of FETs, and a rectifying full-bridge followed by a loading FET
RFID Exploration Louis Yi, Mary Ruthven, Kevin O'Toole, & Jay Patterson What did you do? We made ...
- (转)【Unity3d】Glow + Outline 轮廓描边
转:http://www.cnblogs.com/dosomething/archive/2012/08/04/2622488.html [Unity3d]Glow + Outline 轮廓描边 轮廓 ...
- gridlaylout 简单布局
package com.example.gridlayout; import android.app.Activity; import android.os.Bundle; import androi ...