从Java到Swift
8.枚举还支持associated value,这个是Java没有的。 9.protocol类似于Java中的interface。 10.extension比较强大,甚至变态,可以动态往某个类中增添函数以及成员变量,动态让某个类实现某个protocol,而无需修改该类源代码。Java新增成员变量,新增函数,实现某个interface,Java都只能通过继承实现。而这个直接实现,且对一切该类的对象生效,包括extend之前已经创建的对象。 11.Swift泛型和Java类似的,Swift的泛型支持where语句,可以在对类型控制之外,作更加精细的控制。 内存管理 Swift和Java类似,也无需自己管理内存,Swift是由ARC(Automatic Reference Counting)机制来回收内存的,Java是有垃圾回收机制来保证内存被及时回收。但是两者的回收机制有所区别。我的理解是Swift的ARC机制着眼于无效的对象,就是那些没有被任何人引用到的对象。因此,如果两个对象循环引用,就会无法被回收,引起泄露。此时就需要Weak Reference或者Unowned Reference来打破这个环。 而Java的垃圾回收机制,从反面思考,着眼于哪些是有效的对象,即有被GC Root引用到的对象是有效的,其他的都是无效的。因此哪怕有对象相互引用,只要没有被GC Root引用到,都会被垃圾回收器回收掉。从这此处来看,Java的策略更优。也由此可以看到换个角度看问题是多么重要。 参考引用 The Swift Programming Language (Swift 2.1) https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097-CH3-ID0 what is the entry point of swift code execution? http://stackoverflow.com/questions/24105690/what-is-the-entry-point-of-swift-code-execution Swift程序入口深度分析 http://00red.com/blog/2014/11/20/swift-main-study/ Swift 函数式编程实践 http://codebuild.me/2015/09/15/swift-functional-programming-intro/ Java vs Swift http://slidenerd.com/2014/11/15/swift-vs-java/ SwiftGuide https://github.com/ipader/SwiftGuide Swift https://developer.apple.com/swift/ Learn the Essentials of Swift https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson1.html What is an “unwrapped value” in Swift? http://stackoverflow.com/questions/24034483/what-is-an-unwrapped-value-in-swift 自动引用计数 https://numbbbbb.gitbooks.io/-the-swift-programming-language-/content/chapter2/16_Automatic_Reference_Counting.html 关于阿里百川 阿里百川(baichuan.taobao.com)是阿里巴巴集团“云”+“端”的核心战略是阿里巴巴集团无线开放平台,基于世界级的后端服务和成熟的商业组件,通过“技术、商业及大数据”的开放,为移动创业者提供可快速搭建App、商业化APP并提升用户体验的解决方案;同时提供多元化的创业服务-物理空间、孵化运营、创业投资等,为移动创业者提供全面保障。 (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |