-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathparams.json
1 lines (1 loc) · 2.96 KB
/
params.json
1
{"name":"Jiangjiefs.GitHub.io","tagline":"","body":"\r\n#swift语言优缺点小结\r\n##优点([主要参考这篇总结](http://programmers.stackexchange.com/questions/242816/how-can-swift-be-so-much-faster-than-objective-c-in-these-comparisons)):\r\n\r\n###类型安全\r\n* Swift是一门类型安全语言,类型安全语言需要代码里值的类型非常明确。如果你的代码中有部分值需要String类型,你就不能错误地传递Int。鉴于Swift的类型安全,编译代码时,Swift会执行类型检查并将任何类型不匹配的地方标记为错误,使你在开发当中尽可能早的捕获并修正错误。\r\n###简洁、易读\r\n* 简洁是对开发者来说最主要的特性,很多特性都会帮助减少代码量\r\n* 网上有说oc代码长度是swift四倍的,也有说五倍的\r\n###无需管理内存\r\n* oc中在调用底层api比如Core Graphics,或者写面向过程的代码时仍需要手动释放内存\r\n###易维护\r\n* 没有头文件\r\n###速度快\r\n* [swift为何比oc快](http://programmers.stackexchange.com/questions/242816/how-can-swift-be-so-much-faster-than-objective-c-in-these-comparisons)\r\n###命名空间\r\n* 在 Swift 中,由于可以使用命名空间了,即使是名字相同的类型,只要是来自不同的命名空间的话,都是可以和平共处的。和 C# 这样的显式在文件中指定命名空间的做法不同,Swift 的命名空间是基于 module 而不是在代码中显式地指明,每个 module 代表了 Swift 中的一个命名空间。也就是说,**同一个 target 里的类型名称是不能相同的**。在我们进行 app 开发时,默认添加到 app 的主 target 的内容都是处于同一个命名空间中的,我们可以通过创建 Cocoa (Touch) Framework 的 target 的方法来新建一个 module,这样我们就可以在两个不同的 target 中添加同样名字的类型了。\r\n###闭包和高阶函数\r\n* [Swift一大特性便是使用简洁的头等函数/闭包语法代替了复杂的blocks语法](http://www.cocoachina.com/swift/20150619/12173.html)。\r\n* 不仅写起来更简介,执行也更高效\r\n###playground即时预览\r\n* 这个方便学习swift,所见即所得\r\n\r\n----\r\n##缺点:\r\n###更新快\r\n* Swift更新太快,还不稳定,给推广带来了阻碍,所以诸多开发者更愿意再等一段时间。Scott Logic软件开发公司的技术总监Colin Eberhardt说,Swift频繁更新使他不得不频繁调整自己的代码。他说:“做产品代码的,肯定不愿意用Swift。”目前苹果还不愿回应这个问题。\r\n* 比如wwdc2015带来的swift 2.0版本对之前的语法有诸多不兼容,不过xcode也提供了转换工具来帮助解决语法升级的问题\r\n\r\n###混合oc和swift包会变大\r\n* 比如在我们的工程中加入了swift代码之后编译完的程序包右17m变到23m","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}