Any、AnyObject、as
2016-03-05 17:09
447 查看
Swift中增加了两种类型别名
Any:可表示任意类型,(Int、Double等值类型)。AnyObject:可表示任意class类型实例, 一个任何对象类型的数组
Any类型:
[code] 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
[code] 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)") }
输出值:
[code] NumberA:10.00011,NumberB:10.00011 NumberA:10,NumberB:10
相关文章推荐
- 【论文学习笔记】Class-Specific Hough Forests For Object Detection
- 让相对定位的层位于object的上面
- Flask--AttributeError 'bool' object has no attribute '__call__'
- Objective-C Runtime 一小时入门教程(上)
- SPRING IN ACTION 第4版笔记-第六章RENDERING WEB VIEWS-006- 使用thymeleaf(TemplateResolver、SpringTemplateEngine、ThymeleafViewResolver、th:include、th:object、th:field="*{firstName}")
- 包装类、object、单例模式、final、抽象类
- Spring MVC 提示: Neither BindingResult nor plain target object for bean
- iOS、OC和Objective-C的区别
- 如何判断List<Object>中是否包含,一个有相同xxx某个属性实体类
- C++中关于静态对象的使用( local static object and global static object)
- C++中关于静态对象的使用( local static object and global static object)
- Object-C官方文档翻译——Block
- Objective的宏到swift中该怎么办?
- 在界面线程不能使用Sleep和WaitForSingleObject之类的函数, 使用 MsgWaitForMultipleObjects
- Objective-C 单例模式
- objective -c之分类,协议。
- 011_用eclipse打开hadoop1.2.1源码出现The method getSplits(JobConf, int) is undefined for the type Object错误
- SuperMap iObjects.NET 在洪涝灾害中的简单应用
- 引用CYLTabBarController记录
- Objective-c 协议(Protocol)