天下武功唯快不破:6种快速编写代码的方式

2023-12-24 21:50

本文主要是介绍天下武功唯快不破:6种快速编写代码的方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


全文共1098字,预计学习时长5分钟

 

图源:unsplash

经过多年的发展,Swift如今也得到了许多人的青睐。它不仅提供类型安全性,而且比许多语言都简洁得多。它的功能在发展中不断增加,一定有很多你不知道的技巧隐藏其中。

本文我就将和大家分享一些Swift语言编写代码的方法,它们可以帮助你构建出更好的iOS应用。

在初始化时调用willSet和didSet

简而言之,就是第一次初始化属性时不会调用willSet和didSet属性观察器,但是可以通过将初始化包装在defer语句中来解决这个问题。

尽管有点笨拙,但是由于你不得不以某种方式设置默认值(在声明中或在外部defer中),掌握之后就会很快乐:

                            

使用Maps安全打开选项

通常我们会使用if let或guardlet语法来安全地打开Swift中的选项,但有时我会想能不能有其他方法解决这个问题,尤其是在展开子属性时。我们的另一个选择是:使用map操作符打开选项。

只有当包含在map中的可选值包含某个值的时候才对其进行计算,从而确保其不为nil。

在可选的元组中,使用maps进行解包也很方便。用Swift语言可以进行这样的操作:

func sampleTuple() ->(String, String)?{return nil
}let (a, b) = sampleTuple().map { ($0, $1) } ?? ("NA","NA")

使用重新抛出进行强大的异常处理

想必大家对throws关键字都很熟悉用得也很多,但是Swift中的rethrows功能可能就不是常常会用到了。使用rethrows关键字声明的函数表示,只有当其函数参数之一throws时才会抛出错误。

也就是说,如果Closure参数没有引发错误,那么在调用它时我们无需使用其他try方法,这样一来就能大大减少样板代码。正如在下面的代码中看到的那样,我们不必将相同的不抛异常函数放入do-catch块中。

使用协议扩展进行默认实现

Swift协议功能强大,但它们不允许你指定默认实现。如果你想避免重写方法,这样做可能会非常方便。此外,你还可以使用扩展中的where子句仅为某些约束指定协议实现,但要确保自己不会在代码库中过度使用协议扩展。

轻松跟踪字典中的更改

如何进行Swift字典中的更改(可能是用于调试)?繁琐的方法是通过分散内容来实现,但是也有一种快速的方法,只需在保存该字典的对象上定义一个下标:

在不同场景使用guardlet

Guard let语句使用的是故障安全机制,其中nil值可确保您立即返回上一层。但在某些情况下,return并不是对我们最有利的方法。例如,你可能处于for循环中,只想要continue 或者 break,那么可以按照以下方式进行操作:

学会这些小技巧,去享受纵横驰骋的编码快乐吧。

 


推荐阅读专题

留言点赞发个朋友圈

我们一起分享AI学习与发展的干货

编译组:高淳子、钟惠

相关链接:

https://medium.com/better-programming/6-swifty-ways-of-writing-code-f260286a0dbb

如转载,请后台留言,遵守转载规范

推荐文章阅读

ACL2018论文集50篇解读

EMNLP2017论文集28篇论文解读

2018年AI三大顶会中国学术成果全链接

ACL2017论文集:34篇解读干货全在这里

10篇AAAI2017经典论文回顾

长按识别二维码可添加关注

读芯君爱你

这篇关于天下武功唯快不破:6种快速编写代码的方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/533261

相关文章

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

Oracle查询表结构建表语句索引等方式

《Oracle查询表结构建表语句索引等方式》使用USER_TAB_COLUMNS查询表结构可避免系统隐藏字段(如LISTUSER的CLOB与VARCHAR2同名字段),这些字段可能为dbms_lob.... 目录oracle查询表结构建表语句索引1.用“USER_TAB_COLUMNS”查询表结构2.用“a

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

Debian系和Redhat系防火墙配置方式

《Debian系和Redhat系防火墙配置方式》文章对比了Debian系UFW和Redhat系Firewalld防火墙的安装、启用禁用、端口管理、规则查看及注意事项,强调SSH端口需开放、规则持久化,... 目录Debian系UFW防火墙1. 安装2. 启用与禁用3. 基本命令4. 注意事项5. 示例配置R

最新Spring Security的基于内存用户认证方式

《最新SpringSecurity的基于内存用户认证方式》本文讲解SpringSecurity内存认证配置,适用于开发、测试等场景,通过代码创建用户及权限管理,支持密码加密,虽简单但不持久化,生产环... 目录1. 前言2. 因何选择内存认证?3. 基础配置实战❶ 创建Spring Security配置文件

Python获取浏览器Cookies的四种方式小结

《Python获取浏览器Cookies的四种方式小结》在进行Web应用程序测试和开发时,获取浏览器Cookies是一项重要任务,本文我们介绍四种用Python获取浏览器Cookies的方式,具有一定的... 目录什么是 Cookie?1.使用Selenium库获取浏览器Cookies2.使用浏览器开发者工具