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 ...
随机推荐
- 【LeetCode with Python】 Sort List
博客域名:http://www.xnerv.wang 原题页面:https://oj.leetcode.com/problems/sort-list/ 题目类型: 难度评价:★ 本文地址:http:/ ...
- 腾讯云ubuntu memcached 安装
ubuntu安装 sudo apt-get install memcached 停止memcached服务:sudo systemctl stop memcached 激活memcached服务:s ...
- 根据ip识别地区
<script src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js"></scri ...
- 03 svn 权限与用户管理
一:权限管理 (1)svn仓库各个作用 svnserve.conf [svn仓库的配置文件] password [svn仓库账号和密码配置文件] authz [svn仓库的访问权限] (2)访问权限 ...
- windows下route命令详解(转载)
1.具体功能 该命令用于在本地IP路由表中显示和修改条目.使用不带参数的ROUTE可以显示帮助. 2.语法详解 route [-f] [-p] [co ...
- VS重置命令:devenv.exe/resetuserdata
VS命令行下执行下面的命令: devenv.exe/resetuserdata
- Xcode 6 的新增特性
本文转载至 http://www.cocoachina.com/ios/20140823/9441.html (via:苹果开发者中心) Xcode 6 引入了设计和构建软件的崭新方式.Swift ...
- 开源流媒体服务器--EasyDarwin
欢迎加入我们的开源流媒体服务器项目:EasyDarwin, EasyDarwin是在Apple开源流媒体服务器Darwin Streaming Server(v6.0.3)基础上进行开发和维护的免费开 ...
- 初识代码封装工具SWIG(回调Python函数)
这不是我最早使用swig了,之前在写Kynetix的时候就使用了swig为python封装了C语言写的扩展模块.但是当时我对C++还不是很了解,对其中的一些概念也只是拿来直接用,没有理解到底是什么,为 ...
- Handler向子线程发送数据
public class MainActivity extends AppCompatActivity { private static final String TAG = "MainAc ...