在我的java代码中,我做了类似的事情:
int sleep = 0;
sleep(sleep);
sleep++;
Run Code Online (Sandbox Code Playgroud)
我的老板指出,它并不好.它无法在PHP中正常工作.
在java中使用上面的代码有什么问题/危险吗?
对于if语句,我有相当复杂的逻辑.我目前正在使用:
if(numerical_evaluation) {
if ((!boolOne && boolTwo) || !boolThree){
//do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
boolOne,boolTwo和boolThree是逻辑操作(可能是x < y'myObject-> getBool'等).
我不知道更好的方法是在不将||条件嵌套在第三个if语句中的情况下使其易于阅读.
我遇到困难的原因是or操作员认为if可能有必要保证第三种说法.
一种选择是这样做.
或者,我可以做类似的事情
if(x <= y) {
bool boolFour = false;
if ((!boolOne && boolTwo))
boolFour = true;
if (boolFour || !boolThree){
//do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
甚至可以创建一个单独的函数来尝试将所有内容或组合验证为单个返回值?
或者,我可以尝试以不需要的方式重构代码,这可能需要大量的时间.
我的问题:格式化复杂if问题的最佳方法是什么- 包括更复杂的评估而不仅仅是if (!A && B && C)变化?当你将||语句与&&语句组合成一行时,似乎事情变得无可救药(尤其是当你对boolOne,boolTwo等进行复杂的评估时).做同样的原则 - 格式化if语句的多种条件的最佳方法 - 在这里也适用,或者在使用各种逻辑运算符时存在根本差异吗?
问题更多的是性能问题而不是优雅,我为自己说话,但......
有两个实现选项,cpu计算速度更快,或者最后它是相同的(我倾向于认为是,因为条件是(x <10)相同)
public int DidLogcount = 0; // DidLogCount is raised by +1 every time we deside, then condition is met
public bool MoreLogsAllowed()
{
if (DidLogcount < 10) return true;
else return false;
}
Run Code Online (Sandbox Code Playgroud)
VS
public bool MoreLogsAllowed()
{
return DidLogcount < 10;
}
Run Code Online (Sandbox Code Playgroud)
我们大部分时间都会检查它是否为空,但是,如果我们必须,它将包括两种情况,所以如果我没有错过任何其他问题,我猜我只是缩小它(?).
我会说出正确的答案.谢谢.
Rediting:我只想标记正确答案,但在页面上刷新了3个以上...
等待形成更多选票......而现在,我真的要感谢你们所有人!为了分享你的知识,它确实经过了我的思考,编译器的优化问题,所以...有那些打印输出显示的东西,虽然它的自我很少差别,但当添加到一堆条件,它是少的很少,除非我们谈论一个真正复杂的应用程序,否则我不会说大.我应该说,性能问题永远不是一个小问题,而且由于@Steve和@Nick为我们实际测试它,因此具有逻辑和可读性.
我在php-mode.el上使用Emacs:http://php-mode.sourceforge.net/php-mode.el.html
我的.emacs文件中有以下几行:
(load-file "~/.emacs.d/php-mode.el")
(require 'php-mode)
(setq c-default-style "linux" c-basic-offset 4)
Run Code Online (Sandbox Code Playgroud)
它在大多数情况下都非常好用.问题是对于某些代码位,Emacs以不同的方式显示代码与其他编辑器.例如,我在Emacs中有以下代码:
public function showStuff($items, $Stuff) {
$restrict = true;
$stuff = false;
$moreStuff = true;
if (($restrict && $stuff >= $moreStuff)
|| ( $moreStuff > 10)) {
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
但是在Eclipse/Sublime Text/Text Wrangler中查看相同的文件看起来像:
public function showStuff($items, $Stuff) {
$restrict = true;
$stuff = false;
$moreStuff = true;
if (($restrict && $stuff >= $moreStuff)
|| ( $moreStuff > 10)) {
return true;
}
return false; …Run Code Online (Sandbox Code Playgroud) 我有一个.h文件,其中包含几个类定义.我想在这个文件中使用C++的include guard; 但是,我想知道使用包含警卫的哪种方式被认为是正确/正确的?
一名警卫保护一切
#ifndef FOO_BAR
#define FOO_BAR
class Foo
{
};
class Bar
{
};
#endif
Run Code Online (Sandbox Code Playgroud)
或多个单独的警卫.
#ifndef FOO
#define FOO
class Foo
{
};
#endif
#ifndef BAR
#define BAR
class Bar
{
};
#endif
Run Code Online (Sandbox Code Playgroud) 我刚刚意识到这一点
int i=0;
System.out.println(i++);
Run Code Online (Sandbox Code Playgroud)
打印0而不是1.我以为我增加了然后打印了.似乎相反的情况发生了.
为什么?
如果我有一个被调用的变量value,如果我想写它的getter,那将getvalue()是getter的一个好名字.还是getValue()更好?
有人告诉我,getter名称应该与变量名称匹配.
可能重复:
考虑提供静态工厂方法而不是构造函数
这可能是一个有争议的问题,可能不适合这个论坛(所以如果你选择关闭这个问题,我不会被侮辱).
看来Java的当前功能似乎没有理由构建构造器public...... 永远.友情,private,protected是确定的,但public没有.
似乎提供public static创建对象的方法几乎总是更好的主意.每个Java Bean序列化技术(JAXB,Jackson,Spring等......)都可以调用受保护或私有的无参数构造函数.
我的问题是:
编辑:我解释为什么静态方法更好.
0.1.对于一个你得到更好的类型推断.例如,请参阅Guava的http://code.google.com/p/guava-libraries/wiki/CollectionUtilitiesExplained
0.2.作为该类的设计者,您可以稍后使用静态方法更改返回的内容.
0.3.处理构造函数继承很痛苦,特别是如果你必须预先计算某些东西.0.4.更多理由:https://stackoverflow.com/a/3852556/318174
我应该发布这是针对公共API的代码.我经常违反各种规则(比如使用直接现场访问)进行单元测试,方便,因为我很懒.因此,当我的意思是,我的意思是你把它释放到野外.
我知道 - 我不能,但是.
我希望所有将实现我的接口的类具有相同的所有者(通常在构造函数中定义).这样做的最佳做法是什么?
我应该使用一些基本抽象类或类似的东西吗?
我有很多C代码.我需要编辑该代码以遵循一些编码行提示.所以我需要将所有C代码限制为每行最多80个字符.不是编辑每行代码,而是如何使用工具/ IDE /脚本执行此转换?
coding-style ×10
java ×4
c++ ×2
boolean ×1
c ×1
c# ×1
c#-4.0 ×1
delphi ×1
delphi-xe2 ×1
emacs ×1
ide ×1
if-statement ×1
indentation ×1
interface ×1
linux ×1
logic ×1
php ×1