zoukankan      html  css  js  c++  java
  • Swift 对比学习 (一)

    Swift相对Objective-C来说,有过之而无不及,并与Objective-C无缝混编,可谓利器。在Swift中可以看到不同的编程语言的影子,天下语言一大抄,这样也好,减低了不同语言的学习成本。

    let 和 var,相比只有var的语言多了个选择,如果变量的值不会被修改,那就用let吧,意图更加明确。

    var sideLength: Double ,Pascal也是这样声明变量类型,TypeScript也是这样干的,还是比较好接受的。

    行尾不用加分号(当然你要非得加也不错),一返C语言家族的常态,也许学Pascal多些?

    getter,setter大家已经习以为常了,C#,Java都有,不过willSet,didSet确很有新意。

    enum Rank: Int 
    { 
     case Ace = 1
     case Tow, Three, Four
     case Jack, Queen, King
    }
    

    枚举成员用case声明还是很有趣的

    protocol等同于C#的interface;extension基本上相当于C#的扩展方法,但更强大些,可以扩展现有类去实现特定的protocol.

    泛型,C#早已有之,Java也弃暗投明,话说它们的祖宗是不是C++的template呀?

    println完美替代NSLog, 字符串插值(string interpolation)也很给力,C#6据说也有了?

    元组(tuples)还是很方便实用的,C#目前只能借助类库实现类似功能。

    optionals基本等同于C#的nullable类型,就是叫法不一样,还写法都一样。不过Swift里多了个隐式解析可选(implicity unwrapped optionals),用!标记,第一次付值之后,就不用再判断空了,可以直接当作声明的类型使用。

    基本运算符与C基本相同,多了个浮点求余?

    区间运算符,明显Pascal系列的,C系列好像有人这样用过,好东西还是值得学习的。它还分区间(...)和半区间(..)

    字符串,Unicode编码,转意写法与C相同。

    数组,与C#相似,使用Array<SomeType>类型,SomeType[]为简单写法。数组支持+=和区间运算符还是带来不少方便。

    for-in 与C#的foreach无异

    Dictionary<KeyType, ValueType>就按.NET里的Dictionary<K,V>来用吧,差不了多少。

    都看到这里了,还有见到Swift中用到new,莫非new跟本就不是关键字?

    func 方法定义

    关联值(Associated Values),第一眼看上去最不理解的东西,不过又好像很有用的样子? 它可以把一个常量或变量值与一个枚举值关联起来,使用时可以通过枚举值直接获取相关联的常量或变量值。

    class 和 struct 与C#差不多,不过成员没有private,public的说道,有类型方法(Type Methods)就是C#的static method,Swift中用class func表示,类静态成员还是用static, 不太make sense啊?

    类的构造函数用init(),构造函数的参数很奇特,分内部名和外部名(为了对应ObjectiveC?),可以使用convenience init()内部调用其它构造函数(如:self.init(name:"[Unnamed]"))继承用冒号,调父类成员用super, 可以override 方法,属性或属性观察器(Property Observer), @final可以防止重写.

    反初始化(deinit)? (神命名啊),就按C#的Dispose()理解吧。

    恒等运算符(===, !==) 学javascript的?

    今天就先看这些吧,以上内容纯属现学现卖,如有错误望指正。

  • 相关阅读:
    Selenium 疑问之一:WebDriver 获得弹出窗口(转)
    Selenium 疑问之三:Selenium2.0 对于Wrapped元素的click()不起作用怎么办?
    [转]网站性能工具Yslow的使用方法
    Hudson + Ant + SVN + Tomcat配置详解
    Selenium 疑问之二:如何使页面滚动条移动到指定元素element的位置处?
    【转】组合测试法中的全对偶测试法
    Ant 之property 总结
    [转载]使用Selenium2测试含有iframe的Ajax网页
    Nginx反向代理WebSocket链接失败问题
    WebSocket语法糖
  • 原文地址:https://www.cnblogs.com/zhongzf/p/4114889.html
Copyright © 2011-2022 走看看