Swift 数组,字典,结构体,枚举
1.数组
let types = ["none","warning","error"]//省略类型的数组声明
var menbers = [String]()//声明空数组
menbers.append("six")//添加元素
menbers += ["seven"]//添加元素
menbers.insert("one", at: )//指定位置添加元素
menbers[] = "message"//通过下标修改元素
menbers[...] = ["message","banana","orange"]//通过区间修改元素
print(types)
print(menbers)
print(menbers.count)//数组个数
print(menbers.isEmpty)//数组是否为空
menbers.swapAt(, )//元素之间交换
//menbers.remove(at: 2)//删除某一个元素
//menbers.removeLast()//删除最后一个元素
let addStringArr = types + menbers
//数组遍历
for value in addStringArr {
print("\(value)")
}
//元祖遍历
for (index,value) in menbers.enumerated() {
print("索引:\(index) 数据:\(value)")
} //过滤数组元素
let newTypes = types.filter { (item) -> Bool in
return item.count <
}
print(newTypes) //创建包含100个元素的数组
let items = Array(..<).map{ "条目\($0)"}
print(items)
//2.0 字典
//var emptyDict = [String : Int]()//空字典
//声明一个字典
var myDict = ["name":"hangge","url":"hangge.com"]
myDict["address"] = "china" //添加/修改字典
myDict.removeValue(forKey: "name")//删除某一个key
myDict["name"] = nil //删除某一个key值
//字典的key,value
print(myDict.keys,myDict.values)
//遍历字典
for (key,value) in myDict {
print("\(key):\(value)")
}
//顾虑字典元素
let dict2 = myDict.filter { (item) -> Bool in
return item.value.count <
}
print(dict2) //通过元祖创建字典
let duplicatesArray = [("Monday",),("Tuesday",),("Wednesday",),("Sunday",)]
let dic = Dictionary(duplicatesArray, uniquingKeysWith: min)
print(dic) //合并字典
var dict1 = ["one":,"two":]
//merge 合并
let tuples = [("one",),("three",)]
dict1.merge(tuples, uniquingKeysWith: min)
print("dict:\(dict1)")
//merging 合并
let dict3 = dict1.merging(tuples, uniquingKeysWith: min)
print("dict2:\(dict3)") //字典不存在时,指定默认值
let dict4 = ["apple":,"banana":]
var orange : Int
if let value = dict4["orange"] {
orange = value
}else {
orange =
}
let longan = dict4["longan",default:] print(orange)
print(longan)
//创建一个结构体
struct BookInfo {
var id : Int =
var name : String = "default"
var authord : String = "default"
}
var book1 : BookInfo //默认构造器创建结构体
var book2 : BookInfo = BookInfo.init(id: , name: "航哥", authord: "hanggge")
book1 = book2
book2.id =
print(book1,book2) //枚举
enum Compasspoint {
case north
case south
case east
case west
}
let directionTohead = Compasspoint.east
print(directionTohead) enum Planet : Int {
case mercury =
case venus =
case earth =
}
let earthsorder = Planet.earth
print(earthsorder) enum Direction {
case up
case down
func description() -> String {
switch self {
case .up:
return "向上"
case .down:
return "向下"
}
}
}
print(Direction.up.description())
//默认构造器
class Student{
var name : String = ""
var number : Int =
}
//自定义构造函数
class Person{
//雷属性
var name:String
var age:Int
//类构造函数
init(newName:String,newAge:Int) {
self.name = newName
self.age = newAge
}
//实例函数
func say() -> String {
return "我叫MT\(name)"
}
}
class People {
//普通属性
var firstName:String = ""
var lastName:String = ""
var nickName:String = "" //计算属性
var fullName:String {
get {
return nickName + " " + firstName + " " + lastName
}
}
//带属性监视器普通属性
var age:Int = {
//属性变化前
willSet{
print("will set an new value\(age) to age")
}
didSet{
print("age file change form \(oldValue) to \(age)")
if age < {
nickName = "Little"
}else{
nickName = "Big"
}
}
}
func toString() ->String{
return "Full name \(fullName) +_ age\(age)"
}
}
/*结构体运用*/
struct Account {
var amount:Double = 0.0
var owner:String = ""
//修饰静态方法
static var interestRate:Double = 0.668
static func interestBy(amount:Double) ->Double{
return interestRate * amount
}
}
class Account_class {
var amount:Double = 0.0
var owner:String = "" class var staticProp: Double {
return 0.668
}
class func interestBy(amount:Double) ->Double{
return staticProp * amount
}
}
Swift 数组,字典,结构体,枚举的更多相关文章
- swift中的结构体和枚举
Swift 里的结构体非常特殊. 类是面向对象编程语言中传统的结构单元.和结构体相比,Swift 的类支持实现继承,(受限的)反射,析构函数和多所有者. 既然类比结构体强大这么多,为什么还要使用结构体 ...
- 5、数组&字符串&结构体&共用体&枚举
程序中内存从哪里来 三种内存来源:栈(stack).堆(heap).数据区(.date): 栈(stack) 运行自动分配.自动回收,不需要程序员手工干预: 栈内存可以反复使用: 栈反复使用后,程序不 ...
- swift 类 与 结构体
这两天突然有人问我 swift里面 类和 结构体 有什么区别? 说实在的本人目前不太看好swift,相信很多人也是,oc 都 很成熟了. 本人目前不打算深入了解swift的原因swift 语言 ...
- Swift类和结构体
在C++中,相信不会有太多人去详细考究结构体和类的区别,因为二者关系实在不大.但在Swift中,结构体和类的关系非常大,它们的组成部分都包括:初始化器.实例方法.实例属性.类型属性.类型方法等等:二者 ...
- swift中类与结构体
写了12个Person来复习,不过完成同样的代码需要敲键盘的次数相比OC确实少了很多,这很多应该归功于Swift中不写分号,以及少了OC中的中括号. 一.类与结构体 两者在Swift中差不了多少了 类 ...
- Delphi - 数组和结构体
技术交流,DH讲解. 记得很早之前我就说过,数组和结构体在内存中其实一样的,他们都是连续分布的.例如: ? 1 2 3 4 TMyStruct = record A,B,C:Integer; en ...
- OC基础--结构体 枚举做类成员属性
结构体 枚举作类的成员属性: 定义一个学生类 性别 -- 枚举 生日 入学日期 毕业日期 -- 结构体 代码示例: 声明文件 Student.h: #import <Foundation ...
- 全面总结sizeof的用法(定义、语法、指针变量、数组、结构体、类、联合体、位域位段)
一.前言 编译环境是vs2010(32位). <span style="font-size:18px;">#include<iostream> #inclu ...
- 【原创】只学到二维数组和结构体,不用链表也能写一个C贪食蛇?(四)
全系列Index: [原创]只学到二维数组和结构体,不用链表也能写一个C贪食蛇?(一) [原创]只学到二维数组和结构体,不用链表也能写一个C贪食蛇?(二) [原创]只学到二维数组和结构体,不用链表也能 ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
随机推荐
- nodejs-runoob
是否安装成功nodejs - node -v 是否安装成功npm - npm -v
- 关闭和定时显示DIV
<script type="text/javascript"> $(function(){ $('#ad1').css('display','block'); }) f ...
- PythonCookBook笔记——文件与IO
文件与IO 所有的程序都要处理输入与输出,涉及到文本.二进制文件.文件编码和对文件名.目录的操作. 读写文本数据 需要读写各种不同编码的文本数据,使用rt模式的open()函数. 该读写操作使用系统默 ...
- C# 操作World生成报告
直接上代码 using System; using System.IO; using System.Data; using Word = Microsoft.Office.Interop.Word; ...
- EasyRTSPClient:基于live555封装的支持重连的RTSP客户端RTSPClient
今天先简单介绍一下EasyRTSPClient,后面的文章我们再仔细介绍EasyRTSPClient内部的设计过程: EasyRTSPClient:https://github.com/EasyDar ...
- 哈希表的java实现
一.为什么要用哈希表 树的操作通常需要O(N)的时间级,而哈希表中无论存有多少数据,它的插入和查找(有时包括删除)只需要接近常量级的时间,即O(1)的时间级. 但是哈希表也有一定的缺点:它是基于数组的 ...
- `npm install`卡住不动,使用`sudo npm install`就可以下载依赖包
当我在项目中执行npm install的时候,等了几分钟也没有打印信息出来,竟然卡住不动了. 我取消之后再执行sudo npm install发现是可以安装的.只是安装的node_models文件夹不 ...
- 编译和使用bsdiff
在android开发中,越到后面生成apk文件越来越大,每次用户更新都是全部下载更新,浪费时间和流量,如果能增量更新就不错了,使用bsdiff就是为了生成更新包 bsdiff下载地址:http://w ...
- Cisco设备参数总结
Cisco设备参数总结 1.MAC与TCAM的区别:两张表所其作用的环境不同,MAC表是全局表,一般通过全局CPU进程转发需要查看MAC表,但是,现在基本都是硬件快速转发,那么这个时候就生成了CAM表 ...
- 拓展gcd求不定方程通解
void gcd(LL a,LL b,LL &d,LL &x,LL &y){ ){d=a;x=;y=;return;} gcd(b,a%b,d,x,y); int t=x; x ...