2012-01-16 36 views
-4

是否可以在Java或Javascript中使用具有正则表达式的命名参数作为参数的名称?我想使它可以调用这样的功能:在Javascript中使用带有正则表达式的命名参数作为参数的名称

f("function name:", "drawCircle", "radius:" 1, "xPos:" 0, "yPos:", 0, "color:", "red"); 

还是这个样子,完全一样的效果:

f("name of function:", "draw a circle", "y position:", 0, "color:", "red", "rad:" 1, "x location:" 0); 

这两个应该是相当于为foo(1,0, 0,红色)。

在这两种情况下,给出的参数都应匹配正则表达式列表。应该可以以任何顺序列出参数和函数名称,并获得相同的结果。

有没有什么办法来实现这样的事情?

+1

只要是明确的,Java和JavaScript的共同点很少。他们是完全不同的语言。 – Pointy 2012-01-16 18:29:23

+0

也别忘了用'var'声明你的本地(JavaScript)变量! – Pointy 2012-01-16 18:30:27

+0

我正在使用javax.script包,在Java中使用Javascript。我使用Javascript是因为我喜欢使用使用闭包/嵌套函数的编程语言。 – 2012-01-16 18:37:15

回答

5
f({ 
    "name": "drawCircle", 
    "radius": 1, 
    "xPos": 0, 
    "yPos": 0, 
    "color": "red" 
}); 

这就是为什么你在javascript中使用对象。

虽然你可能想

drawCircle({ 
    radius: 0, 
    x: 0, 
    y: 0, 
    color: "red" 
}); 
+0

我想要更像这样的东西(以伪代码的形式,使用应与构造函数中的字符串匹配的正则表达式)。 f({fun(ction |))(|)(name | nm)/:“drawCircle”, /(rad)(| ius)/ i:1, /(xPos)/ i:0 , /(y)(|)(pos)(ition |)/ i:0, /color/i:“red” });' – 2012-01-16 18:41:13

+1

@AndersonGreen听起来完全没用。你的用例是什么? – Raynos 2012-01-16 18:41:45

+0

我想使用与特定正则表达式匹配的字符串作为参数的名称。函数调用中的每个参数名称只能对应一个正则表达式。我试图通过为每个参数允许多个名称来更容易地记住参数的名称。 – 2012-01-16 18:45:50

相关问题