文档章节

swift学习笔记之二——集合

vill_520
 vill_520
发布于 2014/07/21 23:35
字数 583
阅读 43
收藏 1
点赞 0
评论 0

//=========================== //2014/7/21 17:27 swift集合 //===========================

swift提供了两种集合类型,arrays和dictionaryies,两种集合都是可变的,可以在集合声明后对其进行新增、删除和修改操作。 1、array 数组的定义与java数组相同,但swift的数组提供了更灵活的创建方式和操作方式。

数组创建和初始化方式: var array1: Array<T> = [val1,val2,val3] var array2: T[] = [val1,val2,val3] // 常用

创建空数组 var arrays = Array<T>() var arrays = T

创建重复值数组 var arrays = Array(count:3,repeateValue:0.0) // 编译器会去自动识别值的类型 var arrays = T

常用函数和属性: array2.count (-> Int) // 输出元素的个数 array2.isEmpty (-> Bool) // 判断数组是否为空数组 array2.append(val4) // 追加数组元素 array2 += val4 // 追加数组元素 array2 += [val5,val6] // 追加一组数组元素 array2[0] = val7 // 修改指定下表下元素的值 array2[4...6] = [val5,val6] // 将下标 4~6的元素,替换为对应的元素,这样数组的元素个数可能减少或者增加 array2.insert(val7,atIndex:0) // 在指定下标增加新元素,自动向后移位 array2.removeAtIndex(0) // 移除指定位置的元素,并返回该元素。 array2.removeLast() // 移除最后一个元素,并返回钙元素

数组的遍历与java类似,for语法,采用swift的语法即可 for item in array2 { println("(item)") } 取数组下标及下标对应的值,采用enumerate全局函数 for (index,value) in enumerate(array2) { println("item (index + 1): (value)") }

2、数据字典(Dictionary) 这里的数据字段是key-value形式的一组值 var dicts = ["cls1":"JAVA","cls2":"C++","cls3":"Swift"] dicts["cls3"] // 输出 Swift dicts["cls3"] = nil // 会把 "cls3":"Swift"这一对值删除 dicts["cls3"] = "C" // 修改值 dicts["cls4"] = "Swift" // 新增一对值 dicts.removeValueForKey["cls4"] // 根据key值删除,并返回value

数据字典提供了 key-value遍历,key遍历,value遍历 for (key, val) in dicts { println("(key) : (val)") } for key in dicts.keys { println("(key)") } for val in dicts.values { println("(val)") }

空数据字典实例化 var namesOfIntegers = Int: String

 namesOfIntegers = [:]  // 清空字典

数据字典的key的类型,必须是可以计算出hash值的类型 如果 a == b , 那么有 a.hashValue = b.hashValue

© 著作权归作者所有

共有 人打赏支持
vill_520
粉丝 3
博文 5
码字总数 2584
作品 0
武汉
技术主管
Go语言基础学习:变量

Go语言基础学习(一)变量 猜你喜欢 Ceylon语言学习笔记(1) 《从零开始学Swift》学习笔记(Day 69)——Swift与Objective-C混合编程之语言 go语言学习-常量 GO语言学习-复杂类型(2) Go语言学习...

d_watson
2016/04/15
12
0
《从零开始学Swift》学习笔记(Day 3)——Swift 2.0之后增加的关键字

Swift 2.0学习笔记(Day 3)——Swift 2.0之后增加的关键字 原创文章,欢迎转载。转载请注明:关东升的博客 看了之前的学习笔记知道了什么是关键字,现在提示各位在Swift 2.0之后增加defer、...

智捷课堂
2015/08/20
0
0
Swift 个人学习笔记 - 05: 集合类型(Array, Set, Dictionary)

本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考 以下还是有很多没看懂、不确定的...

amc
2017/02/22
0
0
《从零开始学Swift》学习笔记(Day 2)——使用Web网站编写Swift代码

Swift2.0学习笔记(Day 2)——使用Web网站编写Swift代码 Swift程序不能在Windows其他平台编译和运行,有人提供了一个网站swiftstub.com,左栏是代码编辑窗口,右栏是运行结果窗口。可以在任...

智捷课堂
2015/08/19
0
0
ReactiveCocoa 4 文档翻译目录

文/没故事的卓同学(简书作者) 原文链接:http://www.jianshu.com/p/fccba7be1ca1 著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。 因为决定不再支持iOS7,全面使用Swift...

上官尘
2016/03/02
92
0
IT 技术数据&翻译 目录整理--Awesome-IT-Books

Awesome-IT-Books 本目录旨在集合各个优秀IT书籍&API翻译&官方Docs翻译。 这个仓库不产出书籍,只是将网上流传着的书籍&书籍翻译集合在一起,供大家检索学习。 在此先感谢那些为我们提供书籍...

charchen
2017/04/25
382
1
Swift 个人学习笔记 - 06: 闭包(Clousures)

本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考 以下还是有很多没看懂、不确定的...

amc
2017/03/01
0
0
《从零开始学Swift》学习笔记(Day 9)——离开表达式你试试!

Swift 2.0学习笔记(Day 9)——离开表达式你试试! 原创文章,欢迎转载。转载请注明:关东升的博客 表达式啊是很重要地。 在Swift中,表达式有3种形式。 不指定数据类型 var a1 = 10 指定数...

智捷课堂
2015/09/08
42
0
《从零开始学Swift》学习笔记(Day 69)——Swift与Objective-C混合编程之语言

《从零开始学Swift》学习笔记(Day 69)——Swift与Objective-C混合编程之语言 原创文章,欢迎转载。转载请注明:关东升的博客 在Swift语言出现之前,开发iOS或OS X应用主要使用Objective-C...

智捷课堂
2016/02/24
25
0
Spring.NET学习笔记——目录(原)

目录 前言 Spring.NET学习笔记——前言 第一阶段:控制反转与依赖注入IoC&DI Spring.NET学习笔记1——控制反转(基础篇) Level 200 Spring.NET学习笔记2——环境搭建(基础篇) Level 200 Sprin...

长平狐
2012/06/11
887
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

云拿 无人便利店

附近(上海市-航南路)开了家无人便利店.特意进去体验了一下.下面把自己看到的跟大家分享下. 经得现场工作人员同意后拍了几张照片.从外面看是这样.店门口的指导里强调:不要一次扫码多个人进入....

周翔
12分钟前
0
0
Java设计模式学习之工厂模式

在Java(或者叫做面向对象语言)的世界中,工厂模式被广泛应用于项目中,也许你并没有听说过,不过也许你已经在使用了。 简单来说,工厂模式的出现源于增加程序序的可扩展性,降低耦合度。之...

路小磊
25分钟前
14
0
npm profile 新功能介绍

转载地址 npm profile 新功能介绍 npm新版本新推来一个功能,npm profile,这个可以更改自己简介信息的命令,以后可以不用去登录网站来修改自己的简介了 具体的这个功能的支持大概是在6这个版...

durban
37分钟前
0
0
Serial2Ethernet Bi-redirection

Serial Tool Serial Tool is a utility for developing serial communications, custom protocols or device testing. You can set up bytes to send accordingly to your protocol and save......

zungyiu
43分钟前
0
0
python里求解物理学上的双弹簧质能系统

物理的模型如下: 在这个系统里有两个物体,它们的质量分别是m1和m2,被两个弹簧连接在一起,伸缩系统为k1和k2,左端固定。假定没有外力时,两个弹簧的长度为L1和L2。 由于两物体有重力,那么...

wangxuwei
57分钟前
0
0
apolloxlua 介绍

##项目介绍 apolloxlua 目前支持javascript到lua的翻译。可以在openresty和luajit里使用。这个工具分为两种模式, 一种是web模式,可以通过网页使用。另外一种是tool模式, 通常作为大规模翻...

钟元OSS
今天
0
0
Mybatis入门

简介: 定义:Mybatis是一个支持普通SQL查询、存储过程和高级映射的持久层框架。 途径:MyBatis通过XML文件或者注解的形式配置映射,实现数据库查询。 特性:动态SQL语句。 文件结构:Mybat...

霍淇滨
今天
0
0
开发技术瓶颈期,如何突破

前言 读书、学习的那些事情,以前我也陆续叨叨了不少,但总觉得 “学习方法” 就是一个永远在路上的话题。个人的能力、经验积累与习惯方法不尽相同,而且一篇文章甚至一本书都很难将学习方法...

_小迷糊
今天
0
0
安装tensorflow-XXX报错

报错: tensorflow-0.5.0-cp27-none-linux_x86_64.whl is not a supported wheel on this platform. 解决: wget https://bootstrap.pypa.io/get-pip.py sudo python2.7 get-pip.py sudo p......

Yao--靠自己
今天
0
0
JVM学习手册(一):JVM模型

一直从事JAVA开发,天天和JVM打交道,仔细想想对JVM还真的不是特别了解,实在是不应该.周六看了许多资料,也算有点心得,记录一下。 JVM内存模型分为5个区域:方法区,堆,虚拟机栈,本地方法栈,程序计...

勤奋的蚂蚁
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部