小编Iva*_*n X的帖子

在Swift中,如何避免选项和nil对象引用?

可选项的全部原因是为了防止因命中分配给nil/null/none的变量而导致的运行时崩溃.因此,变量不能为零; 相反,它们可以包含在一个Optional类型中,该类型将它们表示为Some或None,并解包以获取Some的具体内容,或者为nil.

但是如果你用它们!或者用Implicitly Unwrapped Optionals 打开它们,你只需要引入运行时崩溃的可能性,因为你是一个不完美的编码器.如果你使用它if let来安全地打开它们,你可以避免崩溃,但是你被困在if let语句的范围内以使用Some中的值,你仍然需要处理潜在的nil情况.如果使用?为了调用方法暂时解包,它将在完成后重新包装,引入多层次可选包装的混乱可能性.

所以:在我看来,要做的是避免选项,除非必要时(例如,当调用返回它们的框架方法时).但是,如果我不使用选项,那意味着我的对象引用必须是非零的,我无法弄清楚如何处理由于某种原因不应该存在或者不存在的情况,分配给对象引用的值.

我的问题是:我如何避免需要零?看起来它需要一种不同的编程方法.(或者我应该只使用选项,如果这就是我正在做的,那么除了像其他语言那样简单地对对象引用进行空分配外,它有什么用?)

我知道这可能是一个主观问题,但我还应该问其他问题呢?我不是想哄骗或激起辩论,我真的很想知道正确的方法是什么,因为我写了更多的Swift代码.

macos optional ios swift

34
推荐指数
2
解决办法
6301
查看次数

Python:如何使用下划线将混合大小写重命名为小写

我已经写了一些我的第一个重要的Python脚本.我刚读完PEP 8,我了解到lower_case_with_underscores是实例变量名的首选.我一直在使用mixedCase作为变量名,并且我希望我的代码通过将它们更改为lower_case_with_underscores来制作更多Pythonic,如果这就是我们在这里做事的方式.

我可能会编写一些搜索mixedCase的脚本并尝试巧妙地替换它,但在我可能重新发明轮子之前,我的问题是这个解决方案是否已经存在,无论是在精通Python的编辑器中还是作为独立的应用程序; 或者是否有另一种方法可以完成将所有mixedCase变量名转换为lower_case_with_underscores的任务.我已经搜索了一些解决方案,但没有发现任何问题.任何特别会产生这种结果的技术都将受到赞赏.

python ide variables refactoring naming-conventions

8
推荐指数
1
解决办法
942
查看次数