默认似乎是大写,但是否真的有任何理由对关键字使用大写?我开始使用大写,因为我只是试图匹配SQL Server在我尝试创建内容时给出的内容,例如新的存储过程.但是,我觉得我的宝宝(第5个)手指感觉很糟糕,总是需要按住Shift按钮,所以我停止使用大写.有什么理由我应该回到大写?
编辑:谢谢你们的答案.在COBOL成为国王的时代,我还没有编程,所以我没有意识到这一点.从现在开始我会坚持使用小写字母.
我的一位同事表示,布尔作为方法论据是不可接受的.它们应由枚举代替.起初我没有看到任何好处,但他给了我一个例子.
什么更容易理解?
file.writeData( data, true );
Run Code Online (Sandbox Code Playgroud)
要么
enum WriteMode {
Append,
Overwrite
};
file.writeData( data, Append );
Run Code Online (Sandbox Code Playgroud)
现在我明白了!;-)
这绝对是一个例子,枚举作为第二个参数使代码更具可读性.
那么,您对此主题有何看法?
我是C++语言的新手.我已经开始使用向量,并且已经注意到在我看到的所有代码中通过索引迭代通过向量,for循环的第一个参数总是基于向量.在Java中,我可以使用ArrayList执行类似的操作:
for(int i=0; i < vector.size(); i++){
vector[i].doSomething();
}
Run Code Online (Sandbox Code Playgroud)
有没有理由我在C++中没有看到这个?这是不好的做法吗?
在python中你通常使用PEP 8 - Python Code样式指南作为编码标准/指南吗?您还有其他正式标准吗?
我见过这样的代码:
if(statement)
do this;
else
do this;
Run Code Online (Sandbox Code Playgroud)
我不喜欢这样,我认为这更清洁,更具可读性
if(statement){
do this;
}else{
do this;
}
Run Code Online (Sandbox Code Playgroud)
这只是一个偏好问题,还是会推荐一种方式?
这不是一个主要问题,但我想知道是否有更清洁的方法来做到这一点.最好避免使用不必要的if语句嵌套我的代码.如果$items是空的php会抛出错误.
$items = array('a','b','c');
if(!empty($items)) { // <-Remove this if statement
foreach($items as $item) {
print $item;
}
}
Run Code Online (Sandbox Code Playgroud)
我可能只是使用'@'错误抑制器,但这有点hacky.
拥有使用默认参数的类构造函数是一种好习惯,还是应该使用单独的重载构造函数?例如:
// Use this...
class foo
{
private:
std::string name_;
unsigned int age_;
public:
foo(const std::string& name = "", const unsigned int age = 0) :
name_(name),
age_(age)
{
...
}
};
// Or this?
class foo
{
private:
std::string name_;
unsigned int age_;
public:
foo() :
name_(""),
age_(0)
{
}
foo(const std::string& name, const unsigned int age) :
name_(name),
age_(age)
{
...
}
};
Run Code Online (Sandbox Code Playgroud)
这两个版本似乎都有用,例如:
foo f1;
foo f2("Name", 30);
Run Code Online (Sandbox Code Playgroud)
您更喜欢或推荐哪种风格?为什么?
新的红宝石,穿上你的新手套.
以下两个片段之间是否有任何区别(模糊或实用)?
my_array = [:uno, :dos, :tres]
my_array.each { |item|
puts item
}
my_array = [:uno, :dos, :tres]
my_array.each do |item|
puts item
end
Run Code Online (Sandbox Code Playgroud)
我意识到括号语法允许你将块放在一行上
my_array.each { |item| puts item }
Run Code Online (Sandbox Code Playgroud)
但除此之外是否有任何令人信服的理由使用一种语法而不是另一种语法?
这可能是一种风格问题,但我们的开发团队有一点分歧,我想知道是否有其他人对此事有任何想法......
基本上,我们有一些调试打印语句,我们在正常开发过程中关闭.我个人更喜欢做以下事情:
//---- SomeSourceFile.cpp ----
#define DEBUG_ENABLED (0)
...
SomeFunction()
{
int someVariable = 5;
#if(DEBUG_ENABLED)
printf("Debugging: someVariable == %d", someVariable);
#endif
}
Run Code Online (Sandbox Code Playgroud)
有些团队更喜欢以下内容:
// #define DEBUG_ENABLED
...
SomeFunction()
{
int someVariable = 5;
#ifdef DEBUG_ENABLED
printf("Debugging: someVariable == %d", someVariable);
#endif
}
Run Code Online (Sandbox Code Playgroud)
......哪些方法对你来说听起来更好?为什么?我的感觉是,第一个更安全,因为总有一些东西被定义,并且没有危险它可以破坏其他地方的其他定义.
只要我记得我已经避免使用switch语句.实际上,我不记得它曾经进入我的意识作为一种可能的做事方式,因为它早在我的头脑中钻了它只不过是转换语句中的一个错误.然而,今天我遇到了一些在设计中使用它的代码,这让我立刻想知道社区中的每个人都认为有关switch语句的漏洞.
这是编程语言应该明确不允许的东西(比如C#,但它提供了一种解决方法),还是任何语言的功能都足以留给程序员手中?
编辑: 我没有具体到达我的意思.我经常使用这种类型:
switch(m_loadAnimSubCt){
case 0:
case 1:
// Do something
break;
case 2:
case 3:
case 4:
// Do something
break;
}
Run Code Online (Sandbox Code Playgroud)
但是,我很担心这样的事情.
switch(m_loadAnimSubCt){
case 0:
case 1:
// Do something but fall through to the other cases
// after doing it.
case 2:
case 3:
case 4:
// Do something else.
break;
}
Run Code Online (Sandbox Code Playgroud)
这种方式只要大小写为0,1就会在switch语句中执行所有操作.我已经通过设计看到了这一点,我只是不知道我是否同意以这种方式使用switch语句.我认为第一个代码示例非常有用且安全.第二个似乎有点危险.
coding-style ×10
c++ ×3
if-statement ×2
boolean ×1
c ×1
constructor ×1
curly-braces ×1
enumeration ×1
for-loop ×1
iterator ×1
overloading ×1
php ×1
python ×1
ruby ×1
sql ×1