Programming languages “的编程语言习惯用法”;如果object.value==some_值,则object.value=some_other_值;
我一直在想,如果没有,为什么没有,下面的伪代码有一个习惯用法/快捷方式:Programming languages “的编程语言习惯用法”;如果object.value==some_值,则object.value=some_other_值;,programming-languages,idioms,Programming Languages,Idioms,我一直在想,如果没有,为什么没有,下面的伪代码有一个习惯用法/快捷方式: if object.value == some_value then object.value = some_other_value test ( object.value ): if (it > 0) it = 0; else it -= 1; 例如,我有时用JavaScript编写: if (document.getElementById("toggledDiv").style.display
if object.value == some_value then object.value = some_other_value
test ( object.value ):
if (it > 0) it = 0;
else it -= 1;
例如,我有时用JavaScript编写:
if (document.getElementById("toggledDiv").style.display == "block") {
document.getElementById("toggledDiv").style.display = "none";
}
这似乎相当乏味。这个习语有没有名字,在通用编程语言中有没有更简洁的语法
谢谢大家!
编辑:更准确地说,我不关心大括号,但你必须至少引用属性到次。我想要这样的东西(伪代码):
e。g、 :
test (document.getElementById("toggledDiv").style.display):
if (it == "block") it = "none";
其中,它是引用测试属性的关键字。我只是想知道似乎没有任何编程语言实现了这一点
Upate:
好的,同时我发现了一些有点短的东西,但只在JavaScript中有效:
(function(s){
if(s.display=='block')
s.display="none";
else
s.display='block';
})(document.getElementById("toggledDiv").style)
在JavaScript中,您可以执行以下操作:
var d = document.getElementById("toggledDiv");
if (d.style.display == "block") d.style.display = "none";
我不知道有哪种语言支持开箱即用,但是有很多语言支持定义新的操作符。理论上,您可以编写如下内容(在psuedo代码中)
您还可以选择两个版本:
- 如果值不在列表中,则返回原始值的函数
- 如果值不在列表中,则抛出错误(我的版本所做的)
前者将不是一个切换,而是更多的。。。我想是你要求的。我是根据前面关于css/block/none的注释中的toggle用例编写代码的,其中toggle是更常见的行为
假设语言支持它,您也可以编写toggle=
操作符:
v toggle= ['none', 'block']
在Haskell和其他FP语言中,条件,比如三元运算符,是一级表达式,所以你可以将赋值浮出来
a = if x == y then x else z
使代码更干净。在Perl中,如果value=some,您可以编写value=other代码>,我认为它更简洁,因为可以避免大括号。:)我知道,但它没有那么短,仍然需要遍历两个属性两次。这在非FP语言(如C/C++/Java)中也很常见:a=x==y?x:z代码>是,“像三元运算符”,它们无处不在。
v toggle= ['none', 'block']
a = if x == y then x else z