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 . West enum Planet : Int { case Mercury = 1 case Venus = 2 case Earth = 3 } let earthsOrder = Planet . Earth .toRaw() //toRaw()方法来获取他的原始值:3 let possiblePlanet = Planet .fromRaw(2) //fromRaw()方法通过原始值来寻找所对应的枚举成员:Venus enum 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 ...
随机推荐
- 网页制作之html基础学习1-简介
学习网页制作主要分为三大块 1.HTML 超文本标记语言( 全称:Hyper Text Markup Language) 专门编辑静态网页 2.CSS 网页美化:是HTML控制的样式 ...
- ACM 做题过程中的一些小技巧。
ACM做题过程中的一些小技巧. 1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout.cin和printf.scanf最好不要混用. 2.有时候int型不够用,可以用long l ...
- django学习之Model(一)
认认真真学Django,从现在开始. 学习资料来源于官方网站:https://docs.djangoproject.com/en/1.6/ 1-新建一个models.py from django.db ...
- json datetime转换问题
我用Newtonsoft.Json.dll转换成json,这次是把一个集合转换成json,这个集合里有个DateTime类型的数据,转换完成后会变成/Date(1286375605000+0800)/ ...
- Android Studio创建库项目及引用
Android Studio创建库项目其实创建的是在主项目下创建Module模块,这个Module模块创建的时候选择库项目模式. 为什么要这样处理呢?因为在Android Studio中一个WorkS ...
- 基于visual Studio2013解决C语言竞赛题之0708字符串查找
题目
- Android解析Excel文档完整示例
MainActivity如下: package cc.testexcel; import java.io.File; import jxl.Cell; import jxl.CellType; imp ...
- Android 代码混淆
什么是代码混淆 Java 是一种跨平台的.解释型语言,Java 源代码编译成中间”字节码”存储于 class 文件中.由于跨平台的需要,Java 字节码中包括了很多源代码信息,如变量名.方法名,并且通 ...
- Oracle cloud control 12c 怎样改动sysmanpassword
前阵子在虚拟机部署了Oracle Cloud Control 12c.事别几日,居然忘记了登录password. 主要是由于如今的Oracle有关的Software比之前提供更强的安全机制.什 ...
- PHP - 创建一个类
/* * 类的实现 */ //声明一个类 class Person { //私有字段 private $name; private $sex; private $age; //构造函数 functio ...