Swifty Coding我在简书过鸡年——万人万字,请接棒!

Swift的优势

2017-02-03  本文已影响129人  桃子王

高效——易于读和写

例子1: 初始化可变数组并添加一个对象

Obj - C:用alloc分配内存,init初始化

NSMutableArray *array1 = [[NSMutableArray alloc] initWithObjects:@"1", @"2", @"3", nil];

[array1 addObject:@"4"];

Swift:使用var声明变量,使用“+=”拼接两个数组

var array1 = ["1", "2", "3"]

array1 += ["4"]

例子2: 取数组的第一个字符串对象,进行拼接并获取range

Obj - C:用“[]”调用方法,比较冗长

[[[array1 objectAtIndex:0] stringByAppendingString:@"111"] rangeOfString:@"1111"];

Swift::用“.”调用方法,非常简洁

array1[0].appending("111").range(of: "1111")

易于维护,文件数量更少

Swift创建的文件只有一个.swift文件,相比于Obj-C的“.h”和“.m”文件,会让文件数目减少一半。

两种语言的文件类型和结构

更安全

Obj-C:潜在的nil危险

潜在的nil危险

Swift:出现“?”来提醒潜在的nil对象

出现?提醒潜在的nil对象

函数式编程

例子:

有两个数组(如下图),根据数组indexes里的元素作为索引从numbers中取出数字并拼接成一个字符串

两个数组

Obj-C:命令式编程,可以思路很清晰地写出如下代码

Objective-C写法

虽然代码可以work,但是未免太长,也不具有函数性,整个代码段包含太多命令和状态的改变。

我们可以使用更加函数式的代码写出来。

Swift:

函数式代码1

还可以让代码变的更少:

函数式代码2

更更少:

函数式代码3

这就是函数式编程的魅力所在,不需要任何新的中间变量,和状态的改变,通过一行代码就可以达到九行代码的效果。

这也展现出函数式编程的核心 —— 比如使用map、reduce来代替for循环。

所以还没有接触过Swift的iOS开发者们可以将Swift学起来啦~保证不后悔 ᕕ(ᐛ)ᕗ

上一篇下一篇

猜你喜欢

热点阅读