我可以在函数声明中省略花括号吗?

May I omit curly braces in a function declaration?

本文关键字:函数 声明 中省 我可以      更新时间:2023-09-26

目前,我在PHP中声明函数如下:

function theFunction($theVar) {
   ...
}

在JavaScript中:

function theFunction(theVar) {
   ...
}

当函数只包含一行时,我可以省略花括号吗?如:

function theFunction($theVar)
   doSomething();

:

function theFunction(theVar)
   doSomething();

据我所知,这两种语言都不允许。

它们都允许单语句的if()和循环,但不允许函数(在PHP的情况下,也不允许类)。

但即使允许,我也强烈建议不要这样做;大括号的存在是有原因的,帮助可读性和避免歧义。出于同样的原因,我建议总是在if()和循环中使用它们,即使它们在那里不是严格要求的。

像Python这样的语言没有大括号,因为它们有非常严格的缩进规则。如果没有这些规则,语言就需要大括号(或其他一些块标记);如果你不使用它们,你的代码就会有很高的逻辑错误的风险。

No。需要花括号。

不支持,PHP和JS都不支持这种声明。trycatch块也是如此,由于某种原因,它们总是需要花括号,即使条件和循环语句不需要。

不,函数声明需要一个块,无论主语句是如何包含的。

function f()
    console.log(x); // error: unexpected identifier