• swift初学日志


    近来总想着提升自己,总也是又把之前看到一半的书籍开始看起

    虽说了解旧的实现也是对学习有所帮助,但给自己的计划时间并不多,也想直接过度到swift

    因做了五年多的java web,对web前端也多少具备开发的能力,想着也学学客户端的,奈何手头上没有安卓的机子,便也先从ios开始

    客户端的东西并不像服务端一样,经常都是随着系统升级换代,以故多次学习,每每找到的某一种api的调用方式,却又怎也无法在新版本中使用

    与java对比,类库也简单许多,换言之:没有太多完善现成的工具可用

    其原因,初 想来是:

      1、swift设计时便要考虑object-c的兼容性,以故更多的工具都是从object-c封装而来,而非完全使用自身的语言特性所设计实现

      2、swift还处于一个高速迭代的生命周期,用的是破而后立的方式,而非万事考虑兼容旧版本的方式

    其语言特性,初步看来和java这类型的高级程序语言相差不大

    但其原生支持的可选类型Optional确实是一个比较好的概念,以及函数式编程的方式

    这些在java中已经有了实现,虽说有些依样画葫芦,但也总归说明语言的优点是互相借鉴

    java中有了Optional<T>的泛型支持,但由于没有在基础架构中实现,需要大量自行包装对象,甚是麻烦,如下

    1 Optional<Customer> customerOptional = Optional.ofNullable(customer);
    2 customerOptional.orElse(new Customer());
    3 customerOptional.map(Customer::getUsername).orElse("无名");

    函数式编程则有一个新的类库stream

    List<Customer> arrayList = Lists.newArrayList();
    List<Customer> admin = arrayList.stream().filter(customer -> customer.getUsername().equals("admin")).collect(Collectors.toList());
    List<String> userNameList = arrayList.stream().map(customer -> customer.getUsername()).collect(Collectors.toList());
  • 相关阅读:
    Ubuntu中root用户和user用户的相互切换
    MVCC
    vs2010和C#4.0
    使用命令选项连接到MySQL服务器(参考MySQL官方文档)
    使用外部数据源连接WIN版本的MySQL时,测试连接无法通过
    MySQL学习进阶路线
    解决linux(centos7)重新安装mysql systemctl start mysqld.service时报错
    最最完整的 MySQL 规范都在这了
    Linux性能测试与调优的15条常用命令
    (转载)libevent源码深度剖析二
  • 原文地址:https://www.cnblogs.com/gabin/p/9655087.html
Copyright © 2020-2023  润新知