This forces you to manually scan the text and try to figure out exactly whats wrong, what if instead you could just learn which property is different?
A total program is a program that will never get stuck, crash or run into an infinite loop. It will always terminate correctly in a finite amount of time. If your program is total and is well-typed, then a situation where it crashes or gets stuck cannot exist¹. There are many ways in which a program can be non-total. Here are a few examples:
Venture capital funding for FinTech companies has exploded in recent years, driving a wave of innovation across the sector. Entrepreneurs and investors alike are seeing unprecedented opportunities in areas such as payments, lending, insurance, remittances, banking and cryptocurrencies. In analysis prepared exclusively for Money20/20, Kleiner Perkins’ General Partner Noah Knauf reveals the trends driving funding for FinTech startups in 2018 and into the future.
Source: FinTech Trends 2017
Based on official data, a staggering 1.34 million officials at high and low levels – the so-called “tigers and flies” – have been brought down by corruption and disciplinary charges during President Xi’s first five years in office.
Source: Supertop Blog
This ARKit+SceneKit project shows how to “track” vertical planes (relative to horizontal planes anyway), and how to occlude objects with real world geometry. There is no cheating or magic in this app, this stuff is not really possible with (the current version of) ARKit out of the box – basically you need to tell the app about where the walls/real world geometry is. THEN the app sets up the appropriate masking planes and physics bodies. This is then used to bounce balls of the walls as well as occluding the
一开始用的是 SmartThings，尝试了 Home Assistant 之后就决定改用它了。HA 相对于 ST 有不少优势，首先 ST 的大部分需要联网才能工作，增加了额外的不稳定因素和延迟；同时 HA 是开源的 Python 项目，可定制性比 ST 高很多，例如可以把所有状态变化记录到第三方数据库，支持 FloorPlan 等强大的插件。
Source: 智能家居之实践篇 · Aiur
在去年我应 IBM 编辑的邀请写过一篇关于 Swift 2 中 throws 的文章。现在回头看，Swift 2 其实是 Swift 语言发展的一个挺重要的节点：如果说 Swift 1 是一个更偏向于验证阶段的产品的话，Swift 2 中加入的特性为这门语言的基石进行了补足。在那篇文章里我们主要深入探索了新的 throw 关键字背后的事情，而同一时期其实 Swift 官方有过一次关于错误处理的讨论。随着 Swift 3 的开源，这些原始文档也被一同公开，展示了 Swift 设计的过程和轨迹。如果你对这篇 Swift 2 中的错误处理的宣言感兴趣的话，可以在 GitHub 上 Swift 项目文档中找到原文。
Source: 关于 Swift Error 的分类