首先,我想指出,我对编程语言解剖学的理论知识并没有达到应有的深度,我提前道歉。
这也可能是一个愚蠢的问题,我为此道歉,但我一直想知道为什么没有return if
语句或至少语法糖(至少是我熟悉的)编程语言,特别是在像Python或Lua这样的语言中,这些语言相对较高,并且通常允许使用语法糖进行替代拼写。
请使用以下代码,例如:
if(x > y) {
return x;
}
当然你直接知道会发生什么,if x > y is true x is returned
。但是,现在可以争论如下:
if (x > y) { return x }
一样内联编写if x > y, x gets returned
只是为了说清楚,我并不是说“传统”的方式很糟糕,我只是要求出于兴趣。
如果您使用“return if”之类的语句,则上述语句可能如下所示:
return x if (x > y);
这是一个单行,它读得很好x gets returned if x > y
现在我问自己以下问题:
return if
语法是否会导致解析器/编译器出现不必要的复杂问题?编辑: 由于我的例子显然具有误导性,我的意思是使用不同语法的相同行为。
因此,如果x不大于y,return x if(x > y)
根本不会返回。
有些编程语言(我的话)有条件后缀。
你可以在Perl中说,例如:
print "I don't mind" if 6 == 9
这种结构当然可以专门用于
return "I don't mind" if 6 == 9
所以前提是一般的。在特殊情况下,这是因为语言设计师没有看到任何价值。正如一条评论所说,一般的倾向是从左到右的解析。添加这种语法看起来对我来说(仅仅是语言设计中的业余爱好者)就像增加复杂性一样没什么好处。
注意,在构造“语句if condition”中,语句可以是任意复杂的,例如许多行包含在{}中。这不太可读。