写出糟糕的代码会带来糟糕的感觉和生活,尽管它运行的很好。
有时候我们面临着多种选择,这样也可,那样也可,但是哪一个才是那最精准,带着脆响的一投呢?
今天遇到几个值得斟酌,需要think it clear的问题:
1, const:
void
func(
type
*
arg);
看到这句话我们脑海里闪现这样一些信息:
a, 这是用指针传递参数来代替整个类型的复制
b, 这个arg指向的内容可能会被改变
但是如果其实我们并不改变,那么这个声明就没有最确切的表达意思,下面就非常确切
void
func(
const
type
*
arg);
class type
{
public:
const int* mMember;
};
----不仅进了球,而且很脆的空心,读代码和写代码的人都感到很享受。
2, char and unsigned char
在表述字符的时候,用unsigned char更加合理
3, if
bool
judge()
... {
if(a)
...{
if(b)
...{
return true;
}else
...{
return false;
}
}else
...{
return false;
}
}
... {
if(a)
...{
if(b)
...{
return true;
}else
...{
return false;
}
}else
...{
return false;
}
}
这个也的确是对的写法,但是无论自己写起来还是别人读起来,真是混乱的格式,不如改成:
bool
judge()
... {
if(a==false)
return false;
if(b==false)
return false;
if(...)
....;
return true;
}
... {
if(a==false)
return false;
if(b==false)
return false;
if(...)
....;
return true;
}
这样层层筛选的意思就表达的十分确切