Swift:没有人会打扰的常见错误-可选的强制解包,vars和强制转换

您好,我亲爱的开发人员,

苹果在Swift中引入了一个非常可怕的东西,它破坏了所有的安全性和完整性检查,并且消除了使用Optional作为安全类型的麻烦。 这件事是力量的阴暗面。 是操作员 。 关于使用它,我有一些建议:

  • 不要用作! ;
  • 不要使用变量!.doSomething() ;
  • 不要使用let变量:输入!
  • 切勿使用强制操作员;
  • 永远不要使用强制操作员;
  • 你不是绝地,不要使用武力;
  • 你也不是西斯,不要用武力;
  • 不,就是不;
  • 杀死所有使用它们的人,烧掉他们的房屋并吃掉它们的小猫;
  • 更重要的是,您永远都不敢自己使用它们。

强制运算符的最大问题在于,Swift并不是鸭子类型的ObjC,如果它们具有相同的接口,则可以避免使用一个对象,而使用另一个对象。 它也不是安全的,就像ObjC一样。 您不能在Swift中将消息发送到nil,而在ObjC中将消息发送到nil则返回nil(即使在ObjC中返回结构的消息仍然不安全)。

这意味着,如果您使用强制,将永远无法确定自己的Swift代码。 您也将无法对此进行推理。 即使,如果您确定,使用force操作符的代码也将按预期运行,则有可能在前一天发生更改,因为您忘记并且无法提供适当类型或适当值的变量。 使用武力的主要原因是开发人员太懒了,无法编写适当的结构良好的可预测代码。 克服懒惰,不要使用强制运算符。

因此,请记住,每次在Swift中使用武力时,您都别无选择。 他必须至少杀死一只小狗和一只小猫。 所以,对动物好,不要用力。

最后,让我再次强调:

请勿使用强迫操作员

没有例外

就是这样,伙计们。 祝您有美好的一天,无论您身在何处,都要保持干燥。