如何解决Swift中的try关键字的目的是什么?
在缓解指尖瘙痒之前,我已经了解:
- 如何以及何时使用
try
关键字 -
try
,try?
和try!
关键字之间的区别
我想了解的是,无修饰的try
关键字的使用使我(以及您和我们所有人)获得的好处仅仅是使编译器诊断安静下来。我们已经在do
的范围之内,并且显然编译器知道需要try
,而且我(至今)看不到{{1 }}需要降落。那么,为什么在没有显式显示关键字的情况下,编译器不能安静地执行正确的操作呢?
关于该语言试图增强人类可读性的可能性,下面有很多讨论。我想我们需要一位Swift语言设计者的意见来确定这是否成立。即使我们认为这是否明智和/或是否成功还是有争议的。因此,暂时将其搁置一旁。未经修饰的try
关键字的存在是否可以解决 增强人类可读性的某些问题?
解决方法
经过长时间的富有成果的讨论(链接在此页其他地方)…
简而言之,答案是否定的,除了增强可读性外没有其他目的,但是事实证明,赢得可读性比我想象的要重要。
应将try
关键字视为与if
和goto
的组合类似(但不等同)。尽管try
并未指示编译器执行它无法推断的任何操作,但没有人会争辩说if
或goto
应该是不可见的。这使try
对于来自其他语言的人们有些奇怪-但这并非没有道理。
Objective C程序员可能很难理解这一点,因为他们习惯于假设他们所做的几乎任何事情都可能引发异常。当然,Objective C异常与Swift错误有很大的不同,但是有意识地知道它与新陈代谢和无意识地知道是不同的。
同样,如果您的直觉立即告诉您,在大多数情况下,作为样式问题,do
子句中可能只有一个失败的操作,那么可能很难看清{{1 }}添加。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。