为什么大多数编程语言被设计成函数只有一个返回值?
一、为什么大多数编程语言被设计成函数只有一个返回值
大多数编程语言被设计成函数只有一个返回值是因为从本质上说,因为图灵机只有一个返回值(或者说状态)。有一个返回值就能达到图灵完备,不需要两个返回值。
另外,多个返回值就需要多个寄存器,既浪费又不利于编译器优化。从我们的直觉来看,你得到的两个返回值,它们一定能在某个层级上被抽象为一个东西,这在程序中的表现就是返回抽象体的指针(或引用)。
假设我们设计了一个语言叫C-,函数的参数和返回值都只能是一个,那么在C-里,一个多参数多返回值的函数的定义和使用过程就是这样的:struct Para…;//define a parameter struct
struct Ret…;//define a return struct
Ret func(Para p){
…
}
Para para = XXX;
Ret ret;
ret = func(para);为了使用这个函数,我们需要定义数据结构Para和Ret,是不是很麻烦?如果能去掉会省很多事。好了,那么问题就变成了:为什么编程语言大多去掉了Para而不是Ret?这和函数本身的行为有关。一个函数的行为如下图:大家看出什么问题没?参数可以看做是函数的属性,因为Para这个结构可能只在函数内使用(大多数情况下)。因此,我们为这个函数定义Para结构的行为,其实就是函数定义过程中的一个步骤。既然如此,那么把Para的定义放到函数定义里就好了嘛。把下面的代码:struct Para{
int a;
int b;
}
int func(Para p)
…变成:int func(int a, int b)
…
是不是变得简单清晰易读了?那为什么Ret的结构不放在函数定义中呢?因为Ret是函数的产出,别的地方肯定也要用。一个公用的数据结构放在函数定义里显然不是合理的设计。当然,很多情况下我们也可能会给函数传入一个自己定义的作为参数。不过这大多是因为这个数据结构本来就是要到处用的(比如用结构(x,y)来代表平面上的一个点)。一般而言,我们不会为了表达一个函数的结构,而单独地定义一个数据结构。因此参数结构就内化为了的属性。
延伸阅读:
编程语言选用原则
综合思考软件运行过程中所处的硬件环境
如果在硬件环境中。更新效率相对偏高,一旦硬件环境出现一定转变,将会使计算机编程预算无法快速地和硬件环境相迎合。使得程序编程带来一定影响。所以,程序人员在程序编程的过程中,需要对软件调整内容加以综合思考。并且注重适当地减少软件调整难度。
全面思考平台支撑性
在开展程序编程工作的过程中,应该思考应用平台给编程语言带来的影响,结合编程语言自身特性对应用平台实施科学调整,从而实现工作水平的提升,将编程语言自身作用充分发挥。
思考程序编程实际问题
在进行程序编程的过程中,综合思考上述两个问题时。还要对编程实际情况进行全面思考。所以,在进行计算机编程语言选择的过程中,要求编程人员对编程语言特性有所了解。编程人员在对特殊性软件开发过程中。应该选用较为专业的计算机编程语言.专业性编程语言能够有效提升软件开发的规范性。

猜你喜欢LIKE
相关推荐HOT
更多>>
chmod 755与chmod +x的区别?
一、chmod 755与chmod +x的区别chmod 755 的含义是将此文件的permission flags 改为 111(7) 101(5) 101(5)。也就是755 的含义所有用户都拥有详情>>
2023-10-14 21:44:16
在SWIFT中class与struct有哪些区别?
一、在SWIFT中class与struct的区别1、继承不同class可以继承自另一个class,而struct则不能。这意味着,一个class可以通过继承来获得父类的所有...详情>>
2023-10-14 20:36:56
Java开发主要是做什么?
一、Java开发主要的用途Java是一种高级编程语言,最初由Sun Microsystems在1995年推出。Java有着丰富的应用场景,被广泛应用于桌面应用程序、We...详情>>
2023-10-14 19:50:06
PHP能做什么?
一、PHP能做什么1、Web开发PHP是一种广泛用于Web开发的脚本语言,可以用来开发各种类型的Web应用程序,包括动态网站、博客、论坛、电子商务网站...详情>>
2023-10-14 19:15:46热门推荐
技术干货






