用instancetype代替id作返回类型有什么好处
来源:互联网 发布:java金融项目案例 编辑:程序博客网 时间:2024/04/24 23:05
文章来源:
http://zhidao.baidu.com/link?url=Ir0VoGp6iIBwur0N0Y2WtWZFBKg5YUjHFR2H3lDPABTSFTyxpMg1iwfoOLr3Htz9wdY5r0vLleEgKT_EBepLsMsas3qnKFFaS_VAY94oftO使用instancetype有三点好处:
1、明确性。代码只做你让它做的事,而不是其他。2、程式化。你会养成好习惯,这些习惯在某些时候会很有用,而且肯定有用武之地。
3、一致性。让代码可读性更好。
明确性
用instancetype代替id作为返回值的确没有技术上的好处。但这是因为编译器自动将id转化成了instancetype。你以为init返回的值类型是id,其实编译器返回了instancetype。
这两行代码对于编译器来说是一样的:
- (id)initWithBar:(NSInteger)bar;
- (instancetype)initWithBar:(NSInteger)bar;
但在你眼里,这两行代码却不同。你不该学着忽视它。
模式化
在使用init等方法时的确没有区别,但在定义简易构造函数时就有区别了。
这两行代码并不等价:
+ (id)fooWithBar:(NSInteger)bar;
+ (instancetype)fooWithBar:(NSInteger)bar;
如果用instancetype作为函数的返回类型,就不会出错。
一致性:
最后,想象把所有东西放到一起时的情景:你想要一个init方法和一个简易构造函数。
如果你用id来作为init函数的返回类型,最终代码如下:
- (id)initWithBar:(NSInteger)bar;
+ (instancetype)fooWithBar:(NSInteger)bar;
但如果你用instancetype,代码如下:
- (instancetype)initWithBar:(NSInteger)bar;
+ (instancetype)fooWithBar:(NSInteger)bar;
代码更加一致,可读性更强。它们返回相同的东西,这一点一目了然。
0 0
- 用instancetype代替id作返回类型有什么好处?
- 用instancetype代替id作返回类型有什么好处?
- 用instancetype代替id作返回类型有什么好处
- 用instancetype代替id作返回类型有什么好处
- [iOS] 用instancetype代替id作返回类型有什么好处?
- [iOS]用instancetype代替id作返回类型有什么好处?
- oc中,方法的返回类型用instancetype代替id有什么好处
- instancetype替换id有什么好处
- 用instancetype代替id作为返回值
- instancetype和id用作返回类型
- 我们为什么应该用instancetype 代替id?
- instancetype 对比 id 的好处。
- instancetype 对比 id 的好处。
- instancetype 对比 id 的好处。
- instancetype 对比 id 的好处
- instancetype 对比 id 的好处
- instancetype 对比 id 的好处。
- id类型 和 instancetype类型
- Java-集合工具集
- bzoj4521【CQOI2016】手机号码
- Hadoop实战——如何获取当前Map对象所在的block id
- iOS 【UIKit-属性中引用UI控件要用weak的原因】
- Spring Boot入门例子
- 用instancetype代替id作返回类型有什么好处
- jvisualvm连接远程jvm实例
- [LeetCode]problem 117. Populating Next Right Pointers in Each Node II
- android 模拟键盘按键事件
- Codeforces 353 div2 D
- [LeetCode]problem 63. Unique Paths II
- mysql 5.1,5.5,5.6 32位64位最新社区版下载地址
- Objective-C 【init/initWithFrame调用机制】
- (转载)CSS与栅格系统(grid system)