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 ...
随机推荐
- CSS伪类:before 和 :after
CSS用了许久,对一些伪类熟视无睹,从不想着去搞清楚一下.比如说这个 :before :after 其实,:before 表示该标记前面的样式,反之 :after 代表设置后面的样式.网页上常常看到有 ...
- webstrom编辑react语法报错解决
问题: 解决办法:1.把 JavaScript 的版本设置为 JSX Harmony. 2.把<script>type类型改为:text/jsx
- the algebra of modulo-2 sums disk failure recovery
x=y x_+_y=0 The bit in any position is the modulo-2 sum of all the bits in the corresponding positio ...
- FIL代币是什么?
自从比特币价格暴涨.区块链技术火了以后,出现了币圈,币圈中有各种各样的代币,本文就和大家介绍其中的FIL代币相关内容,希望能帮助大家一点一点的了解币圈. IPFS与Filecoin的关系 ...
- 项目中一个普通的Java类如何获取serviceimpl实现类(二)
HbOnLineConfigServiceImpl hbOnlineService=(HbOnLineConfigServiceImpl) WebContextFactoryUtil.getBean( ...
- Kafka理论学习
Kafka Consumer设计解析 http://www.jasongj.com/2015/08/09/KafkaColumn4/
- Vue.js的动态组件模板
组件并不总是具有相同的结构.有时需要管理许多不同的状态.异步执行此操作会很有帮助. 实例: 组件模板某些网页中用于多个位置,例如通知,注释和附件.让我们来一起看一下评论,看一下我表达的意思是什么.评论 ...
- 使用doctrine的内存耗尽解决办法
PHP Fatal error: Allowed memory size of xxx xxx xxx bytes exhausted 无论是插入大量数据或者查询大量数据时,都可能因为数据量太大而出现 ...
- String StringBuffer StringBuilder 三者之间的区别
今天被公司骗去面试,好糟心...... 这个问题不管去哪里面试,基础问题基本上都会问到这个问题.网上好多大神都总结,这里自己也总结一下. 首先我们最开始学的就是String字符串常量,这里有行代码 S ...
- PYTHON 爬虫笔记三:Requests库的基本使用
知识点一:Requests的详解及其基本使用方法 什么是requests库 Requests库是用Python编写的,基于urllib,采用Apache2 Licensed开源协议的HTTP库,相比u ...