swift学习笔记之---数组、字典、枚举、结构体
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学习笔记之---数组、字典、枚举、结构体的更多相关文章
- C#学习笔记(七):结构体、数组、冒泡排序和调试
结构体 结构体不能重写默认无参构造函数 一位数组 using System; using System.Collections.Generic; using System.Linq; using Sy ...
- 《objective-c基础教程》学习笔记(三)—— 从结构体到面向对象
一听标题,感觉十分的抽象.面向对象就是(Object-Oriented Programming)的首字母缩写:OOP,是当今最主流的编程方法. 那么,面向对象编程具体有什么好处呢.是如何来实现呢?通过 ...
- Swift学习笔记(12)--数组和字典的复制
Swift中,数组Array和字典Dictionary是用结构来实现的,但是数组与字典和其它结构在进行赋值或者作为参数传递给函数的时候有一些不同. 并且数组和字典的这些操作,又与Foundation中 ...
- 【Swift学习笔记00】——enumeration枚举类型遵循协议protocol
Apple官方文档:The Swift Programming LanguageProtocols and Extensions一节的小节练习,要求自行定义一个enumeration枚举类型,并且遵循 ...
- 【swift学习笔记】五.使用枚举优雅的管理Segue
在做页面转跳的时候,我们要给Segue命名,如果Segue多了,管理他们就是一个恶梦.我们可以枚举更优雅的管理这些Segue. 1.我们先来建立一个protocol,他的功能就是让实现类实现一个Seg ...
- Swift学习笔记(5)--数组
数组的下标从0开始计数,相关方法属性涉及到下标时也从0开始计数 1.定义: //1.可变数组 var cityArray = ["Portland","San Franc ...
- swift学习笔记7
不管做什么事,只要敬业点,把该作的做好.不要总找借口. 不要看不起小事,生活本是一件件小事的集合.细节决定成败. 士兵突击里面有句台词:他每做一件小事的时候,都好像抓住了一根救命稻草,到最后你才发现, ...
- matlab学习笔记12_2创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段
一起来学matlab-matlab学习笔记12 12_2 结构体 创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段 觉得有用的话 ...
- C#学习笔记_12_枚举&结构体
12_枚举&结构体 枚举 是一种数据类型 适用于某些取值范围有限的数据 语法: [访问权限修饰符] enum 枚举名 { 枚举值 } 枚举名遵循大驼峰命名法 枚举一般情况下是和switch c ...
随机推荐
- 命令运行带参数的jar
一.打包(此处用的是eclipse) 代码如下,此如引用了某博主的代码,因忘记地址,如博主发现此文,可私信我 package com.example.Open; import java.io.File ...
- 原声js实现addClass removeClass toggleClass效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- eclipse ant 的自动部署(autobulid)
在写项目中,经常需要在 ctrl+s的时候自动编译并且把这个改动的文件copy至某个目录,除了eclipse自带 java脚本的web自动部署到项目中配置的目录下,但是不能随心所欲copy,比如其他文 ...
- dp之多维背包hdu2159
二维背包问题,我是觉得这个题目数据比较水,虽然它最后说了怪可以无限个,但是它却只能最多杀s个,也就是所有品种的怪最多为s个,那么就是二维完全背包的问题了.......同时,它没有说一定要杀s只怪,所以 ...
- 可以嵌入程序的chrome
https://bitbucket.org/chromiumembedded/cef The Chromium Embedded Framework (CEF) is a simple framewo ...
- Maven学习之(一)基本配置
安装maven还几次没成功,不过最后还是查资料成功了,所以记录一下. 1.安装JDK,比较简单,就不说明了. 2.配置java的环境变量 JAVA_HOME (最开始因为java配置成C:\Progr ...
- signal(SIGCHLD, SIG_IGN);的使用及验证
#include <stdio.h> #include <unistd.h> #include <sys/types.h> #include<stdlib.h ...
- poll--wait for some event on a file descriptor
poll同select,用于监控file descriptor事件,推荐用poll的升级版epool来实现功能,但在简单应用中使用poll更方便. #include <poll.h> in ...
- 使用RAID与LVM磁盘阵列技术。
7.2 LVM逻辑卷管理器 前面学习的硬盘设备管理技术虽然能够有效地提高硬盘设备的读写速度以及数据的安全性,但是在硬盘分好区或者部署为RAID磁盘阵列之后,再想修改硬盘分区大小就不容易了.换句话说,当 ...
- thymeleaf+bootstrap,onclick传参实现模态框中遇到的错误
一个困扰了N久的问题... 网上大多帖子是这么写的 onclick调javascript函数时,不能直接使用onclick=“editUser(${prod.id})”,这样会报错,需要修改成如下的格 ...