1

在我的开发环境中调用 nil 上的 id 会出错,但在生产环境中它会默默地返回 4。开发人员可能没有意识到这一点。

那么,是否有任何具体原因,为什么生产环境中默认没有将 whiny_nils 设置为 true 呢?

如果我们在生产中将其设置为true,会有什么问题吗?

4

1 回答 1

0

调用抱怨的方法通常表明代码中的错误或正在运行的数据存在问题 - 这是nil开发人员没想到的。在开发环境中,要做的就是让开发人员知道这一点,以便他们检查是否应该这样做。但是,生产代码希望以尽可能少的错误运行,因此默认假设是,如果您调用,这是故意的,并且您知道自己在做什么 - 这不是语法错误,所以我们让它去。whiny_nilsnil.idnil

如果您设置whiny_nilstrue生产,您的生产站点中可能会出现更多错误,这显然是一个问题。另一方面,如果您不是故意调用.idnil也许看到错误的用户比从nil.id4 得到意外行为要好。

于 2013-10-04T15:15:05.383 回答