gpt4 book ai didi

language-agnostic - 是否应该始终/永远/从不将对象字段初始化为默认值?

转载 作者:行者123 更新时间:2023-12-03 08:39:11 28 4
gpt4 key购买 nike

这里的代码样式问题。

我看着this问题,它询问.NET CLR是否真的总是初始化字段值。 (答案是肯定的。)但令我感到惊讶的是,我不确定执行此操作始终是个好主意。我的想法是,如果我看到这样的声明:

int myBlorgleCount = 0;

我有一个很好的主意,程序员希望计数从零开始,并且至少在不久的将来还可以。另一方面,如果我只看到:

int myBlorgleCount;

我不知道是0还是合法或合理的值。而且,如果程序员刚刚开始阅读和修改它,我不知道程序员是否打算在为其设置值之前开始使用它,或者是否期望它为零,等等。

另一方面,一些相当聪明的人和Visual Studio代码清理实用程序告诉我删除这些冗余声明。对此有什么普遍共识? (有共识吗?)

我将其标记为与语言无关,但是如果有一个奇怪的案例,那就是针对特定语言违背特定原则是一个好主意,那可能值得指出。

编辑:尽管我确实说过此问题与语言无关,但它显然不适用于C之类的语言,其中未进行值初始化。

编辑:非常感谢John的回答,但这正是我 而不是在寻找的东西。我知道.NET(或Java或任何其他语言)将完成此工作并一致且正确地初始化值。我的意思是,如果我看到代码正在修改的代码以前未在代码中明确设置,那么作为代码维护者,我不知道原始编码器是否将其设为默认值,或只是忘记设置值,或期望将其设置在其他位置,等等。

最佳答案

考虑长期维护。

  • 保持代码尽可能明确。
  • 不必依赖特定于语言的方式进行初始化。也许该语言的较新版本会有所不同?
  • future 的程序员将感谢您。
  • 管理部门将感谢您。
  • 为什么对事物进行丝毫混淆?

  • 更新: future 的维护者可能来自不同的背景。从长远来看,这实际上与“正确”无关,而是更容易做到的。

    关于language-agnostic - 是否应该始终/永远/从不将对象字段初始化为默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/636102/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com