标签: coding-style

字典和默认值

假设connectionDetails是一个Python字典,那么重构这样的代码的最好,最优雅,最"pythonic"的方法是什么?

if "host" in connectionDetails:
    host = connectionDetails["host"]
else:
    host = someDefaultValue
Run Code Online (Sandbox Code Playgroud)

python dictionary coding-style

193
推荐指数
8
解决办法
16万
查看次数

在C++中使用"super"

我的编码风格包括以下习语:

class Derived : public Base
{
   public :
      typedef Base super; // note that it could be hidden in
                          // protected/private section, instead

      // Etc.
} ;
Run Code Online (Sandbox Code Playgroud)

这使我能够使用"super"作为Base的别名,例如,在构造函数中:

Derived(int i, int j)
   : super(i), J(j)
{
}
Run Code Online (Sandbox Code Playgroud)

或者甚至在其重写版本中从基类调用方法时:

void Derived::foo()
{
   super::foo() ;

   // ... And then, do something else
}
Run Code Online (Sandbox Code Playgroud)

它甚至可以链接(我仍然可以找到它的用途):

class DerivedDerived : public Derived
{
   public :
      typedef Derived super; // note that it could be hidden in
                             // protected/private section, instead

      // Etc.
} ; …
Run Code Online (Sandbox Code Playgroud)

c++ coding-style

192
推荐指数
8
解决办法
15万
查看次数

为什么有些脚本会省略关闭的PHP标记'?>'?

在某些脚本中,我看到它们省略了?>为脚本编写结束标记.为什么我应该这样做?

(我敢肯定他们没有忘记它.)

php coding-style

192
推荐指数
6
解决办法
4万
查看次数

main()中的return语句vs exit()

我应该使用exit()还是只是return声明main()?我个人赞成这些return陈述,因为我觉得这就像在阅读代码时读取任何其他功能和流量控制一样顺畅(在我看来).即使我想重构main()函数,return看起来似乎是一个更好的选择exit().

做一些exit()不特别的事return吗?

c c++ coding-style return exit

188
推荐指数
6
解决办法
7万
查看次数

在条件表达式中检查可空bool的最佳方法(如果...)

我想知道对可空的bool进行条件检查最干净,最易理解的语法是什么.

以下是编码风格的好坏吗?有没有办法更好/更干净地表达条件?

bool? nullableBool = true;
if (nullableBool ?? false) { ... }
else { ... }
Run Code Online (Sandbox Code Playgroud)

尤其是if(nullableBool ?? false)部分.我不喜欢这种if (x.HasValue && x.Value)风格......

(不确定之前是否问过这个问题......找不到与搜索类似的内容)

c# coding-style nullable

187
推荐指数
9
解决办法
10万
查看次数

外部作用域中定义的阴影名称有多糟糕?

我刚刚切换到Pycharm,我很高兴它提供了所有警告和提示,以改进我的代码.除了这个我不明白的:

This inspection detects shadowing names defined in outer scopes.

我知道从外部作用域访问变量是不好的做法但是遮蔽外部作用域的问题是什么?

这是一个例子,Pycharm给了我警告信息:

data = [4, 5, 6]

def print_data(data): # <-- Warning: "Shadows 'data' from outer scope
    print data

print_data(data)
Run Code Online (Sandbox Code Playgroud)

python coding-style pycharm

185
推荐指数
6
解决办法
11万
查看次数

头文件中的C++代码

我使用C++的个人风格总是把类声明放在一个包含文件中,并在.cpp文件中定义,非常类似于Loki对C++头文件,代码分离的回答.不可否认,我喜欢这种风格的部分原因可能与我花费编码Modula-2和Ada的所有年份有关,两者都有与规范文件和正文文件类似的方案.

我有一个同事,比我更了解C++,他坚持认为所有的C++声明应尽可能在头文件中包含定义.他并不是说这是一种有效的替代风格,甚至是一种稍微好一点的风格,而是这是每个人现在都用于C++的新普遍接受的风格.

我不像以前那样柔软,所以我并不急于拼抢他的这个潮流,直到我看到更多的人和他在一起.那个成语真的有多常见?

只是给出答案的一些结构:它现在是The Way,非常常见,有点普遍,不常见,还是出错?

c++ coding-style code-separation

183
推荐指数
11
解决办法
11万
查看次数

177
推荐指数
5
解决办法
5万
查看次数

为什么省略花括号被认为是一种不好的做法?

为什么每个人都告诉我编写这样的代码是一种不好的做法?

if (foo)
    Bar();

//or

for(int i = 0 i < count; i++)
    Bar(i);
Run Code Online (Sandbox Code Playgroud)

省略花括号的最大理由是它有时可以是它们的两倍.例如,下面是一些为C#中的标签绘制发光效果的代码.

using (Brush br = new SolidBrush(Color.FromArgb(15, GlowColor)))
{
    for (int x = 0; x <= GlowAmount; x++)
    {
        for (int y = 0; y <= GlowAmount; y++)
        {
            g.DrawString(Text, this.Font, br, new Point(IconOffset + x, y));
        }
     }
 }
 //versus
using (Brush br = new SolidBrush(Color.FromArgb(15, GlowColor)))
    for (int x = 0; x <= GlowAmount; x++)
        for (int y = 0; y <= GlowAmount; y++) …
Run Code Online (Sandbox Code Playgroud)

c c# c++ java coding-style

177
推荐指数
29
解决办法
5万
查看次数

codestyle; 在注释之前或之后放入javadoc?

我知道这不是最重要的问题,但我只是意识到我可以在注释之前或之后放置javadoc注释块.我们希望采用什么作为编码标准?

/**
 * This is a javadoc comment before the annotation 
 */
@Component
public class MyClass {

    @Autowired
    /**
     * This is a javadoc comment after the annotation
     */
    private MyOtherClass other;
}
Run Code Online (Sandbox Code Playgroud)

java annotations javadoc coding-style code-documentation

176
推荐指数
4
解决办法
2万
查看次数