首页 > 其他分享 >swift学习笔记之---数组、字典、枚举、结构体

swift学习笔记之---数组、字典、枚举、结构体

时间:2023-08-23 13:00:44浏览次数:34  
标签:case menbers value --- 枚举 key print swift myDic

1、数组-Array

let types = ["none","warning","error"]  //省略类型的数组声明
         
let menbers = [String]() //声明一个空数组
         
menbers.append("six")  //添加元素
menbers += ["seven"] //添加元素
menbers.insert("one", atIndex:0)  //指定位置添加元素
         
menbers[0] = "message"  //通过下标修改数组中的数据
menbers[0...2] = ["message","hangge","com"]  //通过小标区间替换数据(前3个数据)
         
menbers.count  //获取数组元素个数
menbers.isEmpty  //判断数组是否为空
         
menbers.removeAtIndex(2)  //删除下标为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[1], &menbers[2])

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

/***字典***/
        let empty = [String: Int]()//建立一个空字典
        print("第一个输出的是\(empty)")
        
        var myDic = ["name":"hgl","age":"27"] //声明一个字典
        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 = 0
    var Name:String = "Defaut"
    var Author:String = "Defaut"
}
 
var book1:BookInfo //默认构造器创建结构体实例
var book2 = BookInfo(ID:0021,Name:"航歌",Author:"hangge")  //调用逐一构造器创建实例
book2.ID = 1234  //修改内部值

4、枚举 - enum

/***枚举****/
    
        enum compassPoint
        {
            case North
            case South
            case East
            case West
        }
        
        let directionToHead = compassPoint.North
        print(directionToHead)
        
        enum Planet:Int
        {
            case Mercury = 1
            case Venus = 2
            case Earth = 3
        }
    
        let earthsOrder = Planet.Earth.rawValue //rawValue来获取他的原始值:3
        print("方向是:\(earthsOrder)")
        let possiblePlanet = Planet(rawValue:2)//通过原始值来寻找所对应的枚举成员: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



作者:稻草人11223

标签:case,menbers,value,---,枚举,key,print,swift,myDic
From: https://blog.51cto.com/u_13188203/7201461

相关文章

  • 【操作系统-进程】进程的调度算法
    目录0进程调度算法的性能指标1【非抢占式】先来先服务(FCFS)调度算法2【非抢占式+抢占式】短进程优先(SPF)调度算法2.1【非抢占式】短进程优先(SPF)调度算法2.2【抢占式】最短剩余时间(SRTN)优先算法3【非抢占式】高响应比优先(HRRN)调度算法4【抢占式】时间片轮转(RR)调度算法案例一:时......
  • 使用tidb-toolkit批量删除/更新数据
    作者:realcp1018一、背景简介在日常使用TiDB的场景中经常会遇到此类问题:建表时未使用分区表,导致数据删除困难。想要快速的批量更新数据,但是每次都需要编写繁杂的跑批任务。想要在数亿、数十亿的大表中删除几千完或几百万数据但是却总是遇到“事务大小超出限制”的错误。为解决此......
  • Oracle-TiDB迁移-生僻字乱码问题
    作者:longzhuquan背景某去O场景业务上线测试,再执行某张表缩字段时报错。现象执行缩字段语句ALTERTABLEschemaname.tablenameMODIFYCOLUMNlicensenovarchar(50)CHARACTERSETutf8mb4COLLATEutf8mb4_binNULLCOMMENT'发动机号';报错信息"incorrectstringvalu......
  • TiDB 多集群告警监控-中章-融合多集群 Grafana
    作者:longzhuquan背景随着公司XC改造步伐的前进,越来越多的业务选择TiDB,由于各个业务之间需要物理隔离,避免不了的TiDB集群数量越来越多。虽然每套TiDB集群均有两个详细的监控Dashboard、Grafana,但对于运维来说几十套集群的监控、告警、巡检均需消耗巨大的精力。上篇介绍了......
  • 端口隔离-二层隔离
    需求1、将pc1与pc2规划到vlan10中2、vlan1与vlan2不能相互访问(阻止ARP)3、同时能够访问vlan10中的主机知识储备默认为:隔离类型为:双向隔离隔离模式:二层隔离配置步骤第一步:系统视图port-isolatemodel2//二层隔离第二步:接口视图下,将需要隔离端口分为一组intg0/0/1port-iso......
  • CUDA -编辑模型
    编程模型可以理解为,我们要用到的语法,内存结构,线程结构等这些我们写程序时我们自己控制的部分,这些部分控制了异构计算设备的工作模式,都是属于编程模型。GPU中大致可以分为:核函数内存管理线程管理流从宏观上我们可以从以下几个环节完成CUDA应用开发:领域层逻辑层硬件层第......
  • Swift - 基本数据类型,及常/变量声明
    用oc编码已经有段时间了,这期间一直在使用oc和学习oc的编码技巧,忽闻小伙伴说:swift已经是趋势了,有时间多看看吧所以我也开始从网上搜索博客,感谢hangge.com的博客,如有冒犯之处,请多见谅,因为是看着大神的博客开始swif全面的学习之路!方向已定,无论前面有多难,都要走下去! 一、swift中基本的......
  • Swift - 使用arc4random()、arc4random_uniform()取得随机数
    arc4random()这个全局函数会生成9位数的随机整数1,下面是使用arc4random函数求一个1~100的随机数(包括1和100)lettemp:Int=Int(arc4random()%100)+1print(temp)2,下面是使用arc4random_uniform函数求一个1~100的随机数(包括1和100)lettemps:Int=Int(arc4random_uniform(10......
  • Swift - 区间运算符(... 和 ..<)
    区间运算符可以用来表示两个操作数之间的范围集合1,闭区间运算符:a...bforicountin512...1024{print(icount)//从512遍历到1024(包括1024)}2,半闭区间运算符:a..<betfruts=["apple","orange","banana"]leticount=fruts.countforii......
  • python-上下文管理器Context
    1.什么是上下文管理器?上下文管理器是一个对象,他定义了执行with语句时要建立的上下文,上下文管理器处理进去和退出所需运行时上下文执行代码块。简单来说一个上下文管理器至少包含__enter__和__exit__两个方法,python提供了contextlib模块中的contextmanager用作装饰器并配合迭......