what’s instancetype
instancetype
是和 id
一样的返回值类型,都表示返回值的类型不确定.
different with id
通过下面的代码可以很清楚的看出区别:
其实2个方法返回的都是Person类实例对象.
但是用 instancetype 作为返回值类型的方法,编译器可以清楚的知道它现在的类别,所以我们可以正常调用该类的一些属性和方法
而 id 作为返回值类型的,其类型在编译器看来就是一个不确定的类型,无法当做 Person 类使用,除非进行类型转换
instancetype 不能像 id 一样作为参数的类型修饰
子类调用
可以看到子类调用父类的方法,instancetype
返回的是子类的类型
结论
合理的使用instancetype
,可以帮助我们在编码时更轻松~
原创文章,转载请注明地址: https://kevinmky.github.io