泛型

本文深入讲解Swift中的泛型概念,包括其定义、使用场景及注意事项等,并通过具体实例展示如何利用泛型提升代码复用性和类型安全性。

泛型:限制类型 

    为什么要推出泛型?迎合swift

 

    泛型作用:1.限制类型 2.提高代码规划,减少沟通成本,一看就知道集合中是什么东西

    泛型定义用法:类型<限制类型>

    泛型声明:在声明类的时候,在类的后面<泛型名称>

    泛型仅仅是报警告

    泛型好处:1.从数组中取出来,可以使用点语法

            2.给数组添加元素,有提示

    

    泛型在开发中使用场景:1.用于限制集合类型

 

    id是不能使用点语法

 

    为什么集合可以使用泛型?使用泛型,必须要先声明泛型? => 如何声明泛型

 

    自定义泛型?

    什么时候使用泛型?在声明类的时候,不确定某些属性或者方法类型,在使用这个类的时候才确定,就可以采用泛型

 

 

 

    用于父子类型转换

 

    泛型:__covariant:协变, 子类转父类

 

 

 

        __contravariant:逆变 父类转子类

 

 

 

    泛型注意点:在数组中,一般用可变数组添加方法,泛型才会生效,如果使用不可变数组,添加元素,泛型没有效果

 

 

 

    自定义Person,会一些编程语言(iOS,Java),在声明Person,不确定这个人会什么,在使用Person才知道这个Person会什么语言

    如果没有定义泛型.默认就是id

 

@interface Person<ObjectType> : NSObject

// 语言
@property (nonatomic, strong) ObjectType language;

@end

 

- (void)viewDidLoad {
    [super viewDidLoad];
    Java *java = [[Java alloc] init];
    iOS *ios = [[iOS alloc] init];
    
    // iOS
    Person<iOS *> *p = [[Person alloc] init];
    p.language = ios;
    
    // Java
    Person<Java *> *p1 = [[Person alloc] init];
    p1.language = java;

    
    // Do any additional setup after loading the view, typically from a nib.
    
}

 

转载于:https://www.cnblogs.com/xufengyuan/p/7209874.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值