在我工作的地方,我看到很多用PL/SQL编写的以下类型的代码,
IF a>b THEN
NULL;
ELSE
c:=a*b;
END IF;
Run Code Online (Sandbox Code Playgroud)
我发现这很奇怪,因为C等价物看起来像这样,
if (a>b)
{
}
else
{
c=a*b;
}
Run Code Online (Sandbox Code Playgroud)
上面那种类型的代码一直被认为是C论坛中的糟糕风格,我知道这些风格是由新手发布的.由于PL/SQL不允许空块并且总是需要NULL语句,这种类型的编码风格是否带来了可读性的任何优点,还是只是一个偏好的问题?FWIW,用上述风格编写PL/SQL的人肯定是一个经验丰富的编码员.与以下相比有什么优势吗?
IF a<=b THEN
c:=a*b;
END IF;
Run Code Online (Sandbox Code Playgroud)
如此看来,a <= b将不会若有部分为null,是真实的.这就是为什么这两个陈述是不同的.
在第一种情况下,c = a*b如果a为null 将运行.在第二种情况下,它不会.除非您确定a并且b不是null,否则等效语句将改为:
IF a<=b or (a is null) or (b is null) THEN
c:=a*b;
END IF;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1537 次 |
| 最近记录: |