据我所知,vb6允许不带()的函数调用。只要该函数没有返回值,就可以使用func(same, params, here)。其他哪些语言也允许这样做?你认为不带括号的func应该表示什么?它们的规则是什么?
免责声明:我正在设计一种语言,如果您会因为我采用了这个想法而感到不满,请不要写下评论。
据我所知,vb6允许不带()的函数调用。只要该函数没有返回值,就可以使用func(same, params, here)。其他哪些语言也允许这样做?你认为不带括号的func应该表示什么?它们的规则是什么?
免责声明:我正在设计一种语言,如果您会因为我采用了这个想法而感到不满,请不要写下评论。
Forth
: STAR [CHAR] * EMIT ;
: STARS 0 DO STAR LOOP CR ;
: SQUARE DUP 0 DO DUP STARS LOOP DROP ;
: TRIANGLE 1 DO I STARS LOOP ;
: TOWER ( n -- ) DUP TRIANGLE SQUARE ;
括号是注释。
JavaScript是一个没有括号的函数“调用”可以表示引用的例子。在允许将函数视为对象的语言中,函数名称只是另一个变量。
此外,在PHP语言结构中(如echo或exit),即使它们需要参数,也不需要括号,因此“echo $foo”的意思与“echo($foo)”相同,“exit $foo”的意思与“exit($foo)”相同。
一些非传统或不使用括号的例子:
Objective-C: [object functionNamePart1:arg1 functionNamePart2:arg2]
或:[object function]
F-Script(基于Objective-C):object functionNamePart1:arg1 functionNamePart2:arg2
或:object function
Lisp:(+ 2 2)
Haskell也不需要括号。