Any、AnyObject、as
来源:互联网 发布:c语言default的用法 编辑:程序博客网 时间:2024/06/06 05:13
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
1 0
- Any、AnyObject、as
- Any、AnyObject与is、as
- Any & AnyObject
- Swift入门教程13-类型转换is as any anyobject
- Swift 类型转换is, as, Any, AnyObject(十二)
- TypeCast Any AnyObject
- Any、AnyObject、AnyClass区别
- [Swift] Any VS AnyObject
- swift Any AnyObject
- [Swift] Any VS AnyObject
- Swift Any & AnyObject
- Swift 类型的检査与转换(is,as,AnyObject,Any)
- swift 学习笔记4 -- is与as any与anyObject 给还未懂的你
- Swift Any和AnyObject类型
- swift 关于Any 和 AnyObject
- swift中Any和AnyObject
- Swift 中Any,AnyObject, AnyClass
- swift4.0 Any 和 AnyObject
- POJ1986 Distance Queries(树链剖分LCA)
- 学习笔记--原生JS
- 获取文件属性函数
- vsftpd配置文件讲解
- Xcode运行带参数的程序
- Any、AnyObject、as
- Linux异步信号处理函数引发的死锁及解决方法
- 面试常客Handler详细解析(自定义与线程相关的Handler)(三)
- hibernate整合Spring出现Unable to instantiate default tuplizer错误。
- java联合编译,类型转换,键盘输入
- C/CPP点滴积累—数组地址与数组首元素地址
- for循环嵌套
- java出现的原因
- 进程与线程的关系与区别