关键字、语句和函数调用有什么区别?
我最近在想这个问题,因为Python 3把print
从一个语句变成了一个函数。
不过,Ruby和CoffeeScript的做法正好相反,因为在这些语言中,你常常可以省略函数的括号,这样就模糊了关键字/语句和函数之间的区别。(没有括号的函数调用看起来很像一个关键字。)
那么,关键字和函数之间到底有什么区别呢?我觉得有些关键字其实就是函数。例如,return 3
也可以理解为return(3)
,其中return这个函数是语言本身就支持的。再比如在JavaScript中,typeof
是一个关键字,但它看起来很像一个函数,也可以用括号来调用。
大家怎么看?
4 个回答
2
关键字和函数是模糊的。是否需要使用括号完全取决于编程语言的语法设计。
举个例子,考虑一个整数声明:
int my_integer = 4;
和
my_integer = int(4)
这两个例子在逻辑上是等价的,但它们的语法却不同。
编程语言使用关键字来保留有限数量的基本功能。当你写一个函数时,你是在扩展这门语言。
4
一个函数是在一个栈帧中执行的,而关键字语句不一定是在栈帧中执行。举个好例子就是 return
语句:如果它是一个函数,并且在自己的栈中执行,那它就无法像现在这样控制程序的执行流程。
1
关键字比函数更基础,可以做一些函数做不到的事情。
你在问题中提到了 return
,这是个很好的例子:在你提到的所有语言中,没有办法用一个函数来实现和 return x
一样的效果。