Questions tagged «variables»

变量或标量是与关联的符号名称(标识符)配对的存储位置,其中包含一些已知或未知的数量或称为值的信息。

10
为什么“清洁代码”建议避免使用受保护的变量?
干净代码建议在“格式”一章的“垂直距离”部分中避免使用受保护的变量: 紧密相关的概念应在垂直方向上彼此靠近。显然,此规则不适用于属于单独文件的概念。但是,除非您有充分的理由,否则不应将紧密相关的概念分成不同的文件。确实,这是应避免使用受保护变量的原因之一。 这是什么原因?

6
变量应命名为ID还是ID?[关闭]
这有点花哨,但我已经看到有人使用Id了: private int userId; public int getUserId(); 其他使用: private int userID; public int getUserID(); 其中一个比另一个更好吗?为什么?我在大型项目中看到这种做法非常不一致。如果我要设定一个大多数人会熟悉的标准?哪个是常规标准?


13
如果可以,是否应该消除局部变量?
例如,要在Android中保持CPU开启,我可以使用以下代码: PowerManager powerManager = (PowerManager)getSystemService(POWER_SERVICE); WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "abc"); wakeLock.acquire(); 但我认为局部变量powerManager和wakeLock可以消除: ((PowerManager)getSystemService(POWER_SERVICE)) .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakelockTag") .acquire(); 类似的场景出现在iOS警报视图中,例如:from UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"my title" message:@"my message" delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil]; [alert show]; -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ [alertView release]; } 至: [[[UIAlertView alloc] initWithTitle:@"my title" message:@"my message" delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil] show]; -(void)alertView:(UIAlertView *)alertView …


12
我应该重用变量吗?
我应该重用变量吗? 我知道许多最佳实践表明您不应该这样做,但是,稍后,当不同的开发人员调试代码并具有3个看起来相似的变量时,唯一的区别是它们是在代码中的不同位置创建的,困惑。单元测试就是一个很好的例子。 但是,我确实知道,最佳实践通常都是反对的。例如,他们说不要“覆盖”方法参数。 最佳做法甚至是反对使以前的变量为空(在Java中,Sonar会在您分配null给变量时发出警告,因为Java 6不需要调用它来调用垃圾回收器。您无法始终控制哪些警告已关闭;大多数情况下默认设置为开启。)

15
干净的代码:很少参数的函数[关闭]
我读过罗伯特·C·马丁(Robert C. Martin)的“ 清洁代码”的第一章,在我看来,这很不错,但是我怀疑,在某种程度上,有人提到函数应该具有尽可能少的参数是很有意义的(认知上)甚至可能暗示3个或更多参数对于一个函数来说太过昂贵了(我发现它非常夸张和理想化),所以我开始怀疑... 使用全局变量和在函数上传递许多参数的实践都是不好的编程习惯,但是使用全局变量可以大大减少函数中参数的数量。 所以我想听听您对此的看法,使用全局变量减少函数参数的数量是否值得?在什么情况下会呢? 我认为这取决于几个因素: 源代码大小。 平均功能参数数。 功能数量。 使用相同变量的频率。 我认为,如果源代码的大小相对较小(例如少于600行代码),则有许多函数,将相同的变量作为参数传递,并且这些函数具有许多参数,那么使用全局变量将是值得的,但是我想知道... 你有我的看法吗? 您对源代码较大的其他情况有什么看法? PS。我看到了这篇文章,标题非常相似,但是他没有问我想知道什么。

7
当单词既是名词又是动词时,如何命名变量
我在以下一般指导下遇到了一个极端情况: 变量名词 功能动词 具体地讲,我有一个情况下字是不明确的-它可以是一个动词或名词。在某些情况下,当我们讨论应用程序时,将在同一句子中同时使用这两种方法。 我的目的是确保当我几个月后返回代码部分时,该程序将对将来的开发人员以及我自己仍然可读。 例子之一是带有battery。A battery有一个charge,您也可以装charge()电池。 我认为,同时具有Battery.Charge和Battery.Charge(value)将是混乱的未来发展。 我当前的解决方案是为其中一种或两种情况(变量和函数)简单地选择一个不同的词。我用这种方法的问题是,Battery对象的变量和函数charge与涉及的设计讨论不一致Battery。 我的问题是在命名约定中是否存在另一种/更好的方法来处理此冲突? 关于该主题的一些其他阅读。没有人真正解决我的问题。 有意义的简洁方法命名准则 变量的命名约定 从https://softwareengineering.stackexchange.com/questions/14169/what-naming-guidelines-do-you-follow选择的答案
48 naming  variables 


12
故意拼写错误以避免保留字
我经常看到这样的代码,其中包含常见单词的故意拼写错误,无论好坏,这些单词已成为保留单词: klass或clazz为类:Class clazz = ThisClass.class kount用于计数在SQL:count(*) AS kount 我个人认为这会降低可读性。在我自己的实践中,我发现没有太多案例无法使用更好的名称- itemClass或recordTotal。 JavaDocs for Class中的示例在参数中显示了这一点: public <U> Class<? extends U> asSubclass(Class<U> clazz) 这是否显示合理的用例?

15
用单个下划线命名未使用的变量是不好的做法吗?
通常,当语言的语法要求我命名一个从未使用过的变量时,我将其命名为_。 在我看来,这减少了混乱,让我专注于代码中有意义的变量。我发现它不引人注目,因此可以产生“视线之外,头脑混乱”的效果。 我执行此操作的一个常见示例是在SQL中命名子查询。 SELECT * FROM ( SELECT * FROM TableA JOIN TableB ON TableA.ColumnB = TableB.ColumnB WHERE [ColumnA] > 10 ) _ --This name is required, but never used here ORDER BY ColumnC 另一个示例是未使用的循环变量。 array = [[] for _ in range(n)] # Defines a list of n empty lists …

17
将返回的变量命名为“结果”是一种好习惯吗?[关闭]
调用方法返回的变量名是一个好习惯result吗? 例如: public Zorglub calculate() { Zorglub result = [...] [...] return result; } 还是应该按类型命名? public Zorglub calculate() { Zorglub zorglub = [...] [...] return zorglub; } 我曾经在野外看到过这两种情况,如果我需要选择一种原因,是什么原因会使我偏爱前者或后者(或任何更好的名字)? 我主要是在考虑Java。


6
首选类成员还是在内部方法之间传递参数?
假设在一个类的私有部分中有一个供多个私有方法使用的值。人们喜欢将其定义为类的成员变量还是将其作为参数传递给每个方法?为什么? 一方面,我可以看到一个论点,即减少类中的状态(即成员变量)通常是一件好事,尽管如果在类的所有方法中重复使用相同的值,那似乎是一个理想的选择。表示为类状态的候选对象,以使代码看起来更清晰(如果没有其他内容)。 编辑: 为了澄清提出的一些评论/问题,我不是在谈论常量,这与任何特定情况都没有关系,而只是与其他人谈论的一种假设。 暂时忽略OOP角度,以下是我想到的特定用例(假设通过引用传递只是为了使伪代码更整洁) int x doSomething(x) doAnotherThing(x) doYetAnotherThing(x) doSomethingElse(x) 所以我的意思是,多个功能之间存在一些共同的变量-在我看来,这是由于较小功能的链接所致。在OOP系统中,如果这些都是类的所有方法(例如,由于通过从大型方法中提取方法进行重构而导致的结果),则该变量可以全部传递给它们,也可以是类成员。

10
变量和存储位置有什么区别?[关闭]
最近,我一直在尝试以视觉方式将指针解释为抽认卡。 问题001:这是计算机内存中某个位置的图形。它的地址是真的0x23452吗?为什么? 答:是的,因为0x23452描述了计算机可以在哪里找到此位置。 问题002:字符b存储在存储单元中是否正确0x23452?为什么? 答:不,因为字符a实际上存储在其中。 问题003:指针存储在存储单元中是否正确0x23452?为什么? 答:是的,因为存储位置的地址0x34501存储在其中。 问题004:指针是否存储在存储单元内是否正确0x23452?为什么? 答:是的,因为另一个存储位置的地址存储在其中。 现在,让我担心的部分。一位软件工程师这样向我解释了一些建议: 指针是一个变量,其值是另一个变量的内存地址。 根据我向大家展示的四个抽认卡,我将以略有不同的方式定义指针: 指针是一个存储位置,其值是另一个存储位置的存储地址。 可以肯定地说变量与存储位置相同吗? 如果没有,那么谁是对的?变量和存储位置有什么区别?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.