博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swift初学日志
阅读量:4506 次
发布时间:2019-06-08

本文共 1116 字,大约阅读时间需要 3 分钟。

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

 

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

 

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

 

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

 

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

 

其原因,初 想来是:

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

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

 

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

 

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

 

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

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

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

 

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

List
arrayList = Lists.newArrayList();List
admin = arrayList.stream().filter(customer -> customer.getUsername().equals("admin")).collect(Collectors.toList());List
userNameList = arrayList.stream().map(customer -> customer.getUsername()).collect(Collectors.toList());

 

转载于:https://www.cnblogs.com/gabin/p/9655087.html

你可能感兴趣的文章
linux——常用命令清单
查看>>
JS 20180415作业
查看>>
项目追求更高的性能,更高的并发,更高的可用 (1)
查看>>
安卓 okhttp小结
查看>>
cocos2d-x 关于无法找到gl/gl.h头文件错误,以及r.java无法生成解决办法
查看>>
Mysql创建自动生成时间列方法
查看>>
12171131第一次作业
查看>>
argparse
查看>>
Pandas使用to_csv保存中文数据用Excel打开是乱码
查看>>
超大整数计算模拟算法
查看>>
<USACO07JAN>解决问题Problem Solvingの思路
查看>>
docker学习
查看>>
C#3.0入门系列(六)-之OrderBy操作
查看>>
10.25 AITalkUat部署
查看>>
枚举学习
查看>>
阅读《构建之法》第8,9,10章
查看>>
用户体验的重要性
查看>>
第八十一节,CSS3变形效果
查看>>
WordCount 分析
查看>>
项目需求分析答辩总结
查看>>