Swift - 复杂数据类型说明(数组,字典,结构体,枚举)
1,数组 - Array
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
var types = ["none","warning","error"] //省略类型的数组声明var menbers = [String]() //声明一个空数组menbers.append("six") //添加元素menbers+="seven" //添加元素menbers.insert("one", atIndex:0) //指定位置添加元素menbers[0] = "message" //通过下标修改数组中的数据menbers[0..2] = "message" //通过小标区间替换数据(前3个数据)menbers.count //获取数组元素个数menbers.isEmpty //判断数组是否为空menbers.removeAtIndex(2) //删除下标为2的数组menbers.removeLast() //删除最后一个元素menbers.removeAll(keepCapacity:true) //删除数组中所有元素var addStringArr = types + menbers //数组组合//使用for in 实现数组遍历for value in menbers{ println("\(value)");}//通过enumerate函数同时遍历数组的所有索引与数据for (index,value) in enumerate(menbers){ println("索引:\(index) 数据:\(value)");} |
2,字典 - Dictionary(即键值对)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
var empty = Dictionary<String,Int> //建立个空格字典var myDic = ["name":"hangge","url":"hangge.com"] //声明一个字典myDic["address"] = "china" //添加或修改key值myDic.removeValueForKey("name") //删除"name"这个key值myDic["name"] = nil //同样可以删除"name"这个key值myDic.keys //访问字典的key集合myDic.values //访问字典的values集合//遍历字典for (key,value) in myDic { println("\(key):\(value)");}//只遍历字典的键(key)for key in myDic.keys { println("\(key)");}//只遍历字典的值(value)for value in myDic.values { println("\(value)");} |
3,结构体 - struct
|
1
2
3
4
5
6
7
8
9
10
|
//创建一个结构体struct BookInfo{ var ID:Int = 0 var Name:String = "Defaut" var Author:String = "Defaut"}var book1:BookInfo //默认构造器创建结构体实例var book2 = BookInfo(ID:0021,Name:"航歌",Authoer:"hangge") //调用逐一构造器创建实例book2.ID = 1234 //修改内部值 |
4,枚举 - enum
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
enum CompassPoint { case North case South case East case West} var directionToHead = CompassPoint.Westenum Planet: Int { case Mercury = 1 case Venus = 2 case Earth = 3} let earthsOrder = Planet.Earth.toRaw() //toRaw()方法来获取他的原始值:3let possiblePlanet = Planet.fromRaw(2) //fromRaw()方法通过原始值来寻找所对应的枚举成员:Venusenum Direction { case Up case Down func description() -> String{ switch(self){ case .Up: return "向上" case .Down: return "向下" } }}println(Direction.Up.description()) |
Swift - 复杂数据类型说明(数组,字典,结构体,枚举)的更多相关文章
- Swift语法学习之 类和结构体
类和结构体 本页包括内容: 类和结构体对照 结构体和枚举是值类型 类是引用类型 类和结构体的选择 集合(collection)类型的赋值与复制行为 与其他编程语言所不同的是,Swift 并不要求你为自 ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
- 5、数组&字符串&结构体&共用体&枚举
程序中内存从哪里来 三种内存来源:栈(stack).堆(heap).数据区(.date): 栈(stack) 运行自动分配.自动回收,不需要程序员手工干预: 栈内存可以反复使用: 栈反复使用后,程序不 ...
- matlab学习笔记12_3串联结构体,按属性创建含有元胞数组的结构体,filenames,isfield,isstruct,orderfields
一起来学matlab-matlab学习笔记12 12_3 结构体 串联结构体,按属性创建含有元胞数组的结构体,filenames,isfield,isstruct,orderfields 觉得有用的话 ...
- 全面总结sizeof的用法(定义、语法、指针变量、数组、结构体、类、联合体、位域位段)
一.前言 编译环境是vs2010(32位). <span style="font-size:18px;">#include<iostream> #inclu ...
- Swift超详细的基础语法-结构体,结构体构造器,定义成员方法, 值类型, 扩充函数
知识点 基本概念 结构体的基本使用 结构体构造器(构造函数/构造方法) 结构体扩充函数(方法), 又称成员方法 结构体是值类型 1. 基本概念 1.1 概念介绍 结构体(struct)是由一系列具有相 ...
- 【原创】只学到二维数组和结构体,不用链表也能写一个C贪食蛇?(四)
全系列Index: [原创]只学到二维数组和结构体,不用链表也能写一个C贪食蛇?(一) [原创]只学到二维数组和结构体,不用链表也能写一个C贪食蛇?(二) [原创]只学到二维数组和结构体,不用链表也能 ...
- Delphi - 数组和结构体
技术交流,DH讲解. 记得很早之前我就说过,数组和结构体在内存中其实一样的,他们都是连续分布的.例如: ? 1 2 3 4 TMyStruct = record A,B,C:Integer; en ...
- OC基础--结构体 枚举做类成员属性
结构体 枚举作类的成员属性: 定义一个学生类 性别 -- 枚举 生日 入学日期 毕业日期 -- 结构体 代码示例: 声明文件 Student.h: #import <Foundation ...
- c#---部分;把数组或者结构体存入集合里,然后再从集合中取出之后,输出;foreach既可以用到提取数组重点额数据,也可以提取集合中的数据(前提是集合中的元素是相同数据类型)
1.输入班级人数,统计每个人的姓名,性别,年龄:集合与数组 //Console.Write("请输入班级人数:"); //int a = int.Parse(Console.Rea ...
随机推荐
- CAN总线基础
can总线协议: 涵盖了OSI规定的传输层.数据链路层.物理层 物理层: 决定了位编码方式(NRZ编码,6个位插入填充位),位时序(位时序.位的采样).同步方式(根据同步段ss实现同步,并具有再同步功 ...
- 交换机Trunk端口配置
本文为转发,简单明了,我喜欢. Trunk端口的配置步骤如下: 一 组网需求: 1.SwitchA与SwitchB用trunk互连,相同VLAN的PC之间可以互访,不同VLAN的PC之间禁止互访: 2 ...
- 03-IOSCore - XML及解析、Plist
一.XML 可扩展标记语言 是什么?是一段有规范的字符串, 用在哪?用在任何地方 语法: * 结点Node <结点名 属性名="属性值"> 结点内容 </结点名& ...
- java多线程中synchronized关键字的用法
转自:http://www.cdtarena.com/javapx/201308/9596.html 由于同一进程内的多个线程共享内存空间,在Java中,就是共享实例,当多个线程试图同时修改某个实例的 ...
- JavaScript实现获取table中某一列的值
JavaScript实现获取table中某一列的值 1.实现源代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/ ...
- sql server 实现sleep延时
sql server中实现与C++ 中Sleep类似的功能,可以使用 waitfor delay '00:00:00:10' 表示延时10毫秒
- [置顶] c#验证码识别、图片二值化、分割、分类、识别
c# 验证码的识别主要分为预处理.分割.识别三个步骤 首先我从网站上下载验证码 处理结果如下: 1.图片预处理,即二值化图片 *就是将图像上的像素点的灰度值设置为0或255. 原理如下: 代码如下: ...
- Heap(data structure)——堆(数据结构)(源自维基百科)
源地址:http://en.wikipedia.org/wiki/Heap_%28data_structure%29 在计算机科学领域,堆是指一个特定的基于数结构的数据结构,其必须满足堆属性: 如果A ...
- Perl 面向对象编程的两种实现和比较:
<pre name="code" class="html">https://www.ibm.com/developerworks/cn/linux/ ...
- 基于visual Studio2013解决C语言竞赛题之1018数组求和
题目 解决代码及点评 /************************************************************************/ ...