1、数组-Array

let types = ["none","warning","error"]  //省略类型的数组声明

let menbers = [String]() //声明一个空数组

menbers.append("six")  //添加元素
menbers += ["seven"] //添加元素
menbers.insert("one", atIndex:) //指定位置添加元素 menbers[] = "message" //通过下标修改数组中的数据
menbers[...] = ["message","hangge","com"] //通过小标区间替换数据(前3个数据) menbers.count //获取数组元素个数
menbers.isEmpty //判断数组是否为空 menbers.removeAtIndex() //删除下标为2的数组
menbers.removeLast() //删除最后一个元素
menbers.removeAll(keepCapacity:true) //删除数组中所有元素 let addStringArr = types + menbers //数组组合 //使用for in 实现数组遍历
for value in menbers{
print("\(value)");
} //通过enumerate函数同时遍历数组的所有索引与数据
for (index,value) in menbers.enumerate(){
print("索引:\(index) 数据:\(value)");
} //交换元素位置(第2个和第3个元素位置进行交换)
swap(&menbers[], &menbers[])

2、字典 - Dictionary (即键值对)

/***字典***/
let empty = [String: Int]()//建立一个空字典
print("第一个输出的是\(empty)") var myDic = ["name":"hgl","age":""] //声明一个字典
print(myDic) //添加或修改key值
myDic["address"] = "china"
print(myDic)
//删除name这个key值
myDic.removeValueForKey("name")
print(myDic)
//同样可以删除“name”这个key值
myDic["name"] = nil
print(myDic)
//访问字典的key集合
myDic.keys
//访问字典的values集合
myDic.values //遍历字典
for (key,value) in myDic { print("\(key):\(value)") }
//只遍历字典的键(key)
for key in myDic.keys
{
print("\(key)")
}
//只遍历字典的值(value)
for value in myDic.values { print("\(value)")
}

3、结构体 - struct

//创建一个结构体
struct BookInfo{
var ID:Int =
var Name:String = "Defaut"
var Author:String = "Defaut"
} var book1:BookInfo //默认构造器创建结构体实例
var book2 = BookInfo(ID:,Name:"航歌",Author:"hangge") //调用逐一构造器创建实例
book2.ID = //修改内部值

4、枚举 - enum

/***枚举****/

        enum compassPoint
{
case North
case South
case East
case West
} let directionToHead = compassPoint.North
print(directionToHead) enum Planet:Int
{
case Mercury =
case Venus =
case Earth =
} let earthsOrder = Planet.Earth.rawValue //rawValue来获取他的原始值:3
print("方向是:\(earthsOrder)")
let possiblePlanet = Planet(rawValue:)//通过原始值来寻找所对应的枚举成员:Venus
print(possiblePlanet) enum Direction
{
case Up
case Down func description() ->String
{
switch self {
case .Up:
return "向上"
case .Down:
return "向下"
}
} } print(Direction.Up.description())

注:使用 rawValue 属性来访问枚举成员的原始值。rawValue

swift学习笔记之---数组、字典、枚举、结构体的更多相关文章

  1. C#学习笔记(七):结构体、数组、冒泡排序和调试

    结构体 结构体不能重写默认无参构造函数 一位数组 using System; using System.Collections.Generic; using System.Linq; using Sy ...

  2. 《objective-c基础教程》学习笔记(三)—— 从结构体到面向对象

    一听标题,感觉十分的抽象.面向对象就是(Object-Oriented Programming)的首字母缩写:OOP,是当今最主流的编程方法. 那么,面向对象编程具体有什么好处呢.是如何来实现呢?通过 ...

  3. Swift学习笔记(12)--数组和字典的复制

    Swift中,数组Array和字典Dictionary是用结构来实现的,但是数组与字典和其它结构在进行赋值或者作为参数传递给函数的时候有一些不同. 并且数组和字典的这些操作,又与Foundation中 ...

  4. 【Swift学习笔记00】——enumeration枚举类型遵循协议protocol

    Apple官方文档:The Swift Programming LanguageProtocols and Extensions一节的小节练习,要求自行定义一个enumeration枚举类型,并且遵循 ...

  5. 【swift学习笔记】五.使用枚举优雅的管理Segue

    在做页面转跳的时候,我们要给Segue命名,如果Segue多了,管理他们就是一个恶梦.我们可以枚举更优雅的管理这些Segue. 1.我们先来建立一个protocol,他的功能就是让实现类实现一个Seg ...

  6. Swift学习笔记(5)--数组

    数组的下标从0开始计数,相关方法属性涉及到下标时也从0开始计数 1.定义: //1.可变数组 var cityArray = ["Portland","San Franc ...

  7. swift学习笔记7

    不管做什么事,只要敬业点,把该作的做好.不要总找借口. 不要看不起小事,生活本是一件件小事的集合.细节决定成败. 士兵突击里面有句台词:他每做一件小事的时候,都好像抓住了一根救命稻草,到最后你才发现, ...

  8. matlab学习笔记12_2创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段

    一起来学matlab-matlab学习笔记12 12_2 结构体 创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段 觉得有用的话 ...

  9. C#学习笔记_12_枚举&结构体

    12_枚举&结构体 枚举 是一种数据类型 适用于某些取值范围有限的数据 语法: [访问权限修饰符] enum 枚举名 { 枚举值 } 枚举名遵循大驼峰命名法 枚举一般情况下是和switch c ...

随机推荐

  1. 进制转化之递归 && 栈

    将10进制转换成2进制,是除以2得到的余数,再倒序排列,这可以用递归实现,也可以用数据结构——栈实现. 先看递归实现: #include<stdio.h> void to_two(int ...

  2. python--Numpy简单实用实例

    # _*_ coding:utf-8 _*_ import numpy as np #创建数组 a=np.array([[1.,7.,0.],[-2.,1.,2.]]) print a #ndarra ...

  3. python学习笔记(14)--爬虫下载漫画图片修改版

    说明: 1. 2017.3.12,周六从中午吃完包子12点多折腾了一下午加一个晚上,试了4个网站的爬虫,发现都不能下载!甚至前几天测试能下载的都不能用了! 2. 到晚上发现煎蛋网的可以用了,立即试了下 ...

  4. 修改主机名hostname

    关于修改linux hostname的问题,尤其是redhat 7修改hostname的方式 2017年03月29日 13:56:45 阅读数:4989 首先强调一点,不同的系统,或者同一个系统的不同 ...

  5. System.map

    System.map是一个特定内核的内核符号表.它是你当前运行的内核的System.map的链接. 内核符号表是怎么创建的呢? System.map是由“nm vmlinux”产生并且不相关的符号被滤 ...

  6. mysql 修改数据库存储地址

    默认目录/var/lib/mysql systemctl stop mysqld cp -pr /var/lib/mysql /data/mysql Create a backup of /etc/m ...

  7. 关于Cocos2d-x中UI按钮的定义

    1.要有两张不同状态的图片 2.定义一个MenuItemSprite的实例,把这两张图的Sprite实例放进MenuItemSprite的实例 3.把MenuItemSprite的实例放进Menu实例 ...

  8. tornado 重定向404

    方法一: 一度喜欢tornado的我, 一直在尝试寻找自定义404的方法,恰巧在看tornaod的mvc结构的时候看到了解决办法 方法之巧妙令人从心底佩服.后来我克隆一份到自己的github以作备份. ...

  9. MFC 窗体注册 WNDCLASS

    //初始化 //初始化包括窗口类的定义.注册.创建窗口实例和显示窗口四部分 { HWND hwnd; MSG Msg; WNDCLASS wndclass; char lpszClassName[]= ...

  10. (转)windows下编译最新的x264

    二:<windows下编译最新的x264> X264更新的比较快,每天都有更新,但算法模块,基本结构是没有多大变化的.x264都是用C语言写的包括C99,但C99语法是在VC中是没法用的( ...