Any、AnyObject、as

简介:

Swift中增加了两种类型别名

  • Any:可表示任意类型,(Int、Double等值类型)。

  • AnyObject:可表示任意class类型实例, 一个任何对象类型的数组

Any类型:

     class Calculate
    {
    var NumberA:Any!
    var NumberB:Any!
    init(Numbera:Any,Numberb:Any)
    {
        self.NumberA=Numbera
        self.NumberB=Numberb
    }
    func douberNumberAdd()->Any!
    {
        var Result:Any!
        if((NumberA as? Int) != nil && (NumberB as? Int) != nil)
        {
            var A=NumberA as? Int
            var B=NumberB as? Int
            var Result:Int
            Result=A!+B!
            return Result
        }
        var A=NumberA as? Double
        var B=NumberB as? Double
        var Resul:Double
        Resul=A!+B!
        return Resul

    }
    }
    var a1=Calculate(Numbera: 10, Numberb: 10)

    var b1=a1.douberNumberAdd()

        print("\(b1)")

       var a2=Calculate(Numbera: 10.00011, Numberb: 10.00011)

       var b2=a2.douberNumberAdd()

        print("\(b2)")

 输出值:

         20
         20.00022

上面用到了Any类型实现了同一个函数方法可以使用Int类型的参数或Double类型的参数,在函数实现内部运用as?判断具体的参数类型,调用该调用的方法。

AnyObject类型

AnyObject类型类似于Object-C中的id类型,可以用AnyObject类型代替任意class类型。

结合上面的代码运用AnyObject

 var anyObjectArray:[AnyObject]=[

    Calculate(Numbera: 10.00011, Numberb: 10.00011),

      Calculate(Numbera: 10, Numberb: 10) ]

  for anyObject in anyObjectArray
  {
    let  anyobj=anyObject as? Calculate

    print("NumberA:\(anyobj!.NumberA),NumberB:\(anyobj!.NumberB)")

    }

输出值:

       NumberA:10.00011,NumberB:10.00011
       NumberA:10,NumberB:10
目录
相关文章
|
3天前
|
数据采集 自然语言处理 监控
应用监控 eBPF 版:实现高效协议解析的技术探索
应用监控 eBPF 版:实现高效协议解析的技术探索
130599 0
|
3天前
|
人工智能 自然语言处理 搜索推荐
AiChat—智能办公助手
在当今的数字化时代,人工智能(AI)已经在各个领域中展现出了强大的能力和潜力。AI在许多方面都为我们的生活带来了便利,其中最显著的一点就是在我们的日常交流和工作中。 现在,最简单的低门槛软件应该是AiChat……
183824 6
AiChat—智能办公助手
|
8天前
|
开发工具 数据库 git
向量检索服务体验评测
通过一个实用的例子带你全方位了解向量检索服务DashVector
119844 1
|
16天前
|
弹性计算 运维 Linux
炸裂大合集 !零基础畅玩指南:从入门到精通,一文解锁幻兽帕鲁、雾锁王国之旅
本文从0开始介绍,包含基础电脑配置、购买、搭建等一步步完成,共历时5天。分别介绍了基于ECS+计算巢部署帕鲁和雾锁王国、计算巢运维服务详解、单独采用ECS服务器部署帕鲁和雾锁王国等,文章很长,但确实写的很用心,后期如有新的想法也会同步更新在这里。
253237 12
炸裂大合集 !零基础畅玩指南:从入门到精通,一文解锁幻兽帕鲁、雾锁王国之旅
|
17天前
|
弹性计算 监控 区块链
全网最全的幻兽帕鲁服务器搭建教程—阿里云【保姆级/高性价比】
在近年来,随着区块链技术和元宇宙概念的兴起,游戏行业也开始进行全新的探索和变革。幻兽帕鲁作为一个区块链游戏,成为了玩家们热议的话题。在这个游戏世界中,玩家们可以捕捉、培养幻兽,与其他玩家进行战斗和交易。为了让更多玩家能够体验到幻兽帕鲁的魅力,我们特地整理了一份详细的服务器搭建教程,让你在家也能轻松搭建自己的幻兽帕鲁服务器。
159680 21
|
18天前
|
弹性计算 运维 数据安全/隐私保护
|
16天前
|
弹性计算 运维 监控
ECS省钱指南,万字长文教你如何选择与业务形态最匹配的付费方式
阿里云弹性计算团队十三位产品专家和技术专家共同分享云上运维深度实践,详细阐述如何利用CloudOps工具实现运维提效、弹性降本。
131012 30
|
20天前
|
人工智能 Kubernetes Cloud Native
Kube Queue:Kubernetes 任务排队的利器
Kube Queue:Kubernetes 任务排队的利器
220327 38
|
19天前
|
弹性计算 运维 Linux
【ECS服务器搭建】快速完成幻兽帕鲁服务器的搭建及部署【零基础上手】
对于如此火爆的游戏,零基础玩家们是否可以通过自己的技术完成快速部署搭建呢,那显示是可以的,下面就跟随小魔龙一起通过阿里云ECS快速部署一台专属的游戏服务器,跟小伙伴们一起玩耍吧。
【ECS服务器搭建】快速完成幻兽帕鲁服务器的搭建及部署【零基础上手】
|
2天前
|
弹性计算 安全 Linux
教你选择适合业务的云服务器ECS,适合自己业务的才是最好的
随着云计算技术的发展,越来越多的个人和企业开始使用云服务器ECS。但是,选择适合自己业务和需求的云服务器ECS并不容易,需要考虑多个因素。本文将介绍如何选择适合自己的云服务器ECS,并提供一些工作中总结的实用的建议。
20767 7