成为优秀Swift开发者的10条建议

在这里给大家分享一些帮助大家成为更优秀的Swift开发者的建议,让你的代码,写的更少,性能更优 。

1. Extension 扩展

举例:平方

创建无效变量,将5平方后再平方 —— 毕竟我们不喜欢打字。

2. Generics 泛型

举例:打印数组中的所有元素

对于很多无效的函数,我们只需创建一个就可。

3. For 循环 vs While 循环

举例:打印5次 “Count”

创建变量“i”以确保你电脑打印有限的数字不会崩溃。

要记住:变量越多 → 记忆越多 → 越麻烦 → bug越多 → 问题越多。蝴蝶效应要谨记

4. 有选择的展开

举例:Gaurd let vs if let

我们来写一个欢迎新用户的程序。

你看到世界末日的金字塔了吗?嵌套的代码太让人讨厌了。坚决不要!把糟糕的代码去掉,改成更好的。

上下两者的差别是显而易见的。如果用户名或密码有一个零值,优雅的代码会调用“return”提前退出。否则,会出现欢迎的信息。

5. 计算属性 vs 函数

举例:求圆的直径

上面创建了两个互斥函数。太糟糕了!我们将半径和直径之间的点连接起来。

现在,半径和直径变量是互相独立的。连接越多 → 额外输入越少 → 错误更少 → bug越少 → 问题越少。

6. 类型安全枚举

举例:售票

“Adult”, “Child”, “Senior” → 这是在硬编码,逐一地将每个情况的字符串打出来,万万不可。上面已经解释过,写太多会出什么问题。我们可一点都不喜欢打字。

“.adult”, “.child”, “.senior” 重点标注肯定是没错的。如果switch语句超过指定枚举的范围遇到一些未知情况,左边发生红色错误(),Xcode会报警。—— 找不到合适的表情啦。

7. 无效合并

举例:用户选择Twitter主题色

这代码太长了,我们缩短一下。

上边代码的意思是,如果userChosernColor返回零值(无效),选择defaultColor (red),否则,选择userChosenColor.

8. 有条件的合并

举例:鸡冠头(SpikyHair)显高

上面的代码太长了,我们来给它瘦瘦身。

上面的代码意思是,如果hasSpikeHaire是真实的,最后的高度增加5;如果是假的,最后的高度加0(不增加)。

9. 函数式编程

举例:获取偶数

不需要了解全过程。review上面的for循环太浪费时间了,其实可以更清晰一些。

函数式编程是现象级的,会让你变得更聪明。

10. Closure vs Func

不需要记住函数和变量的名字。

原文发布于微信公众号 - java一日一条(mjx_java)

原文发表时间:2016-12-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏WD学习记录

牛客网 合唱团

有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能...

1632
来自专栏木可大大

编写优雅代码的最佳实践

Robert Martin曾说过"在代码阅读中说脏话的频率是衡量代码质量额唯一标准"。同时,代码的写法应当使别人理解它所需的时间最小化,也就是说我们写的代码是给...

962
来自专栏aoho求索

由散列表到BitMap的概念与应用(三):海量数据处理

遍历文件a,对每个url求取hash(url)%1000,然后根据所取得的值将url分别存储到1000个小文件(记为a0,a1,…,a999,每个小文件约300...

1231
来自专栏企鹅号快讯

30分钟学会用Python编写简单程序

参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤。 了解遵循输入、处理、输出(IPO)模式的程序,并能够以简单的方式修改它...

58210
来自专栏小李刀刀的专栏

[译]Laravel 5.0 之 Eloquent 属性转换

本文译自 Matt Stauffer 的系列文章. ---- 之前完全忘了要把这个 Laravel 5 的系列博客写完,不过最近看到了一篇关于属性转换的简介 L...

4178
来自专栏java达人

哈希表

哈希表是种数据结构,它可以提供快速的插入操作和查找操作。第一次接触哈希表时,它的优点多得让人难以置信。不论哈希表中有多少数据,插入和删除(有时包括侧除)只需要接...

1827
来自专栏C/C++基础

统计无符号整数二进制中1的个数(Hamming weight)

之所以来记录这个问题的解法,是因为在在线编程中经常遇到,比如编程之美和京东的校招笔试以及很多其他公司都累此不疲的出这个考题。看似简单的问题,背后却隐藏着很多精妙...

1462
来自专栏小樱的经验随笔

UESTC 1599 wtmsb【优先队列+排序】

题目链接:UESTC 1599 wtmsb 题意:给你一组数,每一次取出两个最小的数,将这两个数的和放入这组数中,直到这组数只剩下一个,求最后剩下那个数的大小!...

2746
来自专栏阿凯的Excel

让你眼花缭乱的匹配函数反查技巧

小编已经连续写了三期关于匹配函数的用法,匹配函数的扛把子(老大)肯定是Vlookup函数莫属,但是Vlookup函数有一个问题,就是要查找的内容,必须在查找内容...

2956
来自专栏aoho求索

由散列表到BitMap的概念与应用(一)

散列表是种数据结构,它可以提供快速的插入操作和查找操作。第一次接触散列表时,它的优点多得让人难以置信。不论散列表中有多少数据,插入和删除只需要接近常量的时间即O...

1032

扫码关注云+社区

领取腾讯云代金券