单个语句函数的保护子句?
Guard clause for a single statement function?
在满足条件的情况下,编写有效执行一条语句的非常简单的函数的最易读的方法是什么?
我觉得最易读的是:
function doSomething(myNumber){
if(myNumber !== null && myNumber > 5){
doTheThing();
}
}
然而,我的同事坚持认为保护子句使任何东西更具可读性,并且总是这样写这个函数:
function doSomething(myNumber){
if(myNumber === null || myNumber <= 5)
return;
doTheThing();
}
我知道保护子句在更大的函数中可以更具可读性,特别是如果需要检查多个条件,and/or 如果需要抛出异常。但是在这种情况下,我总是必须三思而后行才能理解在什么情况下会执行 doTheThing(),这对于这么简单的函数来说似乎很荒谬。
这不是真正的技术问题,而是风格的选择。
您可以通过多种方式编写该函数,编译器会尽可能地优化它。至于“可读性”,这完全取决于程序员的选择。只要遵循语言规则和标准,那么任何选择都可以。当然,如果你在团队中工作,最好就某种风格达成一致,这样每个人都可以在代码上工作而不会感到困惑。
就个人而言,如果我真的想让它可读,我会这样做:
function doSomething(myNumber)
{
if(myNumber != null && myNumber > 5)
{
doTheThing();
}
}
另一方面,如果我想要更少的代码行,我会选择这个:
function doSomething(myNumber) {
if(myNumber == null || myNumber <= 5) return;
doTheThing();
}
同样重要的是要考虑 if 语句应该如何。在这种情况下,您涵盖了所有可能性,但请记住这一点以避免意外错误。
在满足条件的情况下,编写有效执行一条语句的非常简单的函数的最易读的方法是什么?
我觉得最易读的是:
function doSomething(myNumber){
if(myNumber !== null && myNumber > 5){
doTheThing();
}
}
然而,我的同事坚持认为保护子句使任何东西更具可读性,并且总是这样写这个函数:
function doSomething(myNumber){
if(myNumber === null || myNumber <= 5)
return;
doTheThing();
}
我知道保护子句在更大的函数中可以更具可读性,特别是如果需要检查多个条件,and/or 如果需要抛出异常。但是在这种情况下,我总是必须三思而后行才能理解在什么情况下会执行 doTheThing(),这对于这么简单的函数来说似乎很荒谬。
这不是真正的技术问题,而是风格的选择。
您可以通过多种方式编写该函数,编译器会尽可能地优化它。至于“可读性”,这完全取决于程序员的选择。只要遵循语言规则和标准,那么任何选择都可以。当然,如果你在团队中工作,最好就某种风格达成一致,这样每个人都可以在代码上工作而不会感到困惑。
就个人而言,如果我真的想让它可读,我会这样做:
function doSomething(myNumber)
{
if(myNumber != null && myNumber > 5)
{
doTheThing();
}
}
另一方面,如果我想要更少的代码行,我会选择这个:
function doSomething(myNumber) {
if(myNumber == null || myNumber <= 5) return;
doTheThing();
}
同样重要的是要考虑 if 语句应该如何。在这种情况下,您涵盖了所有可能性,但请记住这一点以避免意外错误。