9 programming-languages function function-calls
我想知道,是否有任何编程语言可以让你有这样的函数调用:
function_name(parameter1)function_name_continued(parameter2);
Run Code Online (Sandbox Code Playgroud)
要么
function_name(param1)function_continued(param2)...function_continued(paramN);
Run Code Online (Sandbox Code Playgroud)
例如,您可以调用此函数:
int dist = distanceFrom(cityA)to(cityB);
Run Code Online (Sandbox Code Playgroud)
如果你已经定义了这样的distanceFromto
函数:
int distanceFrom(city A)to(city B)
{
// find distance between city A and city B
// ...
return distance;
}
Run Code Online (Sandbox Code Playgroud)
据我所知,在C,Java和SML编程语言中,这是不可能完成的.
您是否了解任何编程语言,您可以通过这种方式定义和调用函数?
它看起来很像Objective-C
- (int)distanceFrom:(City *)cityA to:(City *)cityB {
// woah!
}
Run Code Online (Sandbox Code Playgroud)
听起来很像Smalltalk的语法,(这可以解释Objective-C的语法 - 请参阅kubi的答案).
例:
dist := metric distanceFrom: cityA to: cityB
Run Code Online (Sandbox Code Playgroud)
其中#distanceFrom:to:是一个名为metric的对象的方法.
所以你有"函数调用"(它们真的是消息发送)就像
'hello world' indexOf: $o startingAt: 6. "$o means 'the character literal o"
Run Code Online (Sandbox Code Playgroud)
编辑:我说过"真的,#distanceFrom:to:应该叫做#distanceTo:在城市课上,但无论如何." Justice指出,这将城市与公制联系起来,这是一个坏的.您可能想要改变度量标准有很好的理由 - 飞机可能使用测地线,而汽车可能会使用基于道路网络的最短路径.)