程序语言是否具有返回值的函数?

时间:2016-11-30 12:13:36

标签: javascript function return procedural

我以前在College(英国大学)的VB.NET中编码,有两种方法可以封装代码:通过方法和函数。一种方法只会执行一些代码;另一方面,函数具有返回值的优点。

现在我正在使用Javascript课程的程序样式进行编码。

我的问题是,过程语言中的函数是否能够返回值?或者这只是一个面向对象的功能?或者这是所有语言的普遍特征吗?

1 个答案:

答案 0 :(得分:0)

能够从通话中返回价值与程序/功能/ OOP完全正交/你有什么。

Javascript确实支持从通话中返回值,因为它是一种非常实用的语言,而且不会返回值的功能会相当令人尴尬。大多数其他语言允许您做同样的事情。实际上,Javascript是一种多范式语言 - 您可以看到它在许多不同的角色中使用,直到查询。它允许您很好地混合和匹配样式,或者只选择您喜欢的方法并坚持下去。

没有"程序风格"。就像那里没有"功能风格"或者" OOP风格"或"关系风格"。这些只是非常宽的标签,没有客观背景。想想你需要做什么,并找到一种方法来做到这一点。唯一一个像这些标签这样重要的案例就是当有人想强迫你采用某种风格时 - 在这种情况下,问问他们究竟是什么意思 - 我们无法帮助你,它就在他们的头脑里。 / p>

例如,程序代码用于表示"没有结构化构造"。没有功能,程序,甚至没有ifs和循环。今天,大多数人实际上使用术语"程序"意味着过去的结构编程" - 程序和功能,"高水平"构造像结构化的分支和循环,以及大量的全局变量(尽管希望你不再传递参数并通过全局变量返回值 - YMMV:))。

"面向对象的编程"用来表示"来回发送消息" - 开创性的OOP论文甚至没有返回值,你只是应该倾听一条回复消息"如果你需要回复毕竟,目标对象可能会稍后回答,或者根本不回答(例如,当它获得I / O响应时)。它绝对没有任何形式的静态类型(并且可以说它根本没有真正的类型概念) - 相反,你有对象来监听消息。当一条消息传来时,该对象想出了如何处理它 - 所有对象都是动态的。唯一的公共接口是那些消息 - 其他一切只是对象的内部细节。不出所料,分布式系统重新点燃了这种方法的流行,因为该模型本质上是异步的,而且松散耦合。

Javascript不支持类,当然。但是类完全与OOP正交 - 它们只是实现键入和(更重要的是)语言中的子类型的一种方式。原型并不比类更好或更差;函数不比类更好或更差。所有这三种方法都是完全有效的OOP方法(以及一般的编程方式),因为完全忽略了输入,Javascript主要是这样做的。虽然您确实有跟踪对象类型的方法,但最终只有对象的实际实例才真正重要。

这些术语大多是无用的,最常用于嘲笑你不喜欢的风格:)在最好的情况下,它们代表了某些过去的时间,在某些圈子中对该术语的特定解释很受欢迎 - 确保传达给定术语的实际含义。 "程序"可能意味着"不要使用对象","不要使用函数","使用全局变量来处理所有事情",任何数量的事情。我们无法告诉您的主管/老师/老板如何看待"程序" - 只有他可以。