问题标签 [procedural-programming]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
752 浏览

procedural-programming - 程序编程和数据公开

考虑到在过程编程中您可以拥有本地范围,可以说以下陈述并不完全正确吗?

“在过程程序中,数据暴露给整个程序,而在 OOPs 程序中,它可以在对象中访问,这反过来又保证了代码的安全性。”

(我是学生,实习面试时被问到这个问题)

0 投票
6 回答
10559 浏览

database - 替代 Visual FoxPro

我想知道是否有 Visual FoxPro 的替代品。最后一个版本是 9.0。使用 FoxPro 3.0 语言,我想知道有人知道类似于 FoxPro 的语言,开发环境类似于 Visual FoxPro 9.0。我知道有 dBase,但我不知道它是否像 FoxPro 一样强大,我也知道 xHarbour,但我还没有尝试过。

0 投票
2 回答
588 浏览

javascript - Jquery/javascript:加载页面时不需要的重复功能

我有一个基于用户通过单击功能创建某些 div 的 Web 应用程序。当用户添加 div 时,我还赋予他们删除所述功能的能力。每次用户添加一个 div 时,它都会被推送到一个数组中。然后用户可以保存数组并在他们回来时加载它。

删除 div 的函数嵌套在要添加的函数中,因为这是我发现使函数工作的唯一方法。

我遇到的问题是,在单击添加按钮之前,我还必须在加载函数中调用删除函数以使删除按钮起作用。我尝试在任一函数之外调用函数,但因为没有 div 开始。因此,当页面加载并单击删除按钮时,它会执行两次并破坏应用程序。

我是编程新手,我现在所做的主要是程序性的,所以任何输入工作都会受到赞赏。我觉得我犯了一个菜鸟错误,伪代码如下。

0 投票
1 回答
1491 浏览

user-interface - 哪些 GUI 库不是面向对象的?

我最近一直在使用 C,并且想要探索编程不仅仅是控制台应用程序。然而,大多数 GUI 库都是面向对象的,很难用 C 等非面向对象的编程语言进行编程。即使是为 C 设计的面向对象的 GUI 库(如 GTK+)也需要大量的样板。因为我在使用这些面向对象的库时遇到了困难,所以我想知道哪些 GUI 库不是面向对象的?

0 投票
3 回答
2254 浏览

oop - 非 OOP 编程中多态性的替代方案?

假设我们有一个包含不同元素的绘图程序,例如圆形、矩形、三角形等。不同种类的对象都需要类似的功能,例如draw()展示自己。

我想知道程序员将如何处理如今通常由多态性解决的问题,即通过一组不相同的元素并跨不同对象调用通用功能。

想到的一种方法是拥有一个结构,其中包含指向适当函数(或函数指针数组中的索引)的函数指针以及指向实际实例的 void 指针,并传递转​​换为正确类型的指针在函数中。但这就是我 - 一个对这个问题一无所知的人会这样做的方式。

我确实意识到这可能是一个愚蠢的问题,但由于我在“过去”的日子里没有去过,我真的想知道这个问题是如何解决的。在过程编程中使用了什么样的方法,它是否具有性能优势,因为我们都知道多态性即使在像 C++ 这样的快速语言中也会因为虚方法查找而产生开销。

0 投票
1 回答
855 浏览

php - PHP中用于流控制的Switch vs Classes

最近,我写了一个简单的 Web 应用程序。我目前有。

  • 提供 html 标记和我需要的资源的静态页面
  • 与服务器通信并在客户端呈现响应的 javascript 路由处理机制。

对于我需要操作的每个对象,服务器都提供了一个 php 脚本,在/app/object.php该脚本中接受 POST 数据并返回 JSON 结果。

例如(不是实际响应):

在引擎盖下 JSON api 是这样实现的:

最大的对象有 7 个方法和 200 个(缩进良好,未压缩)的 LOC,而平均每个对象大约有 3 个方法。

我的一位开发者朋友建议用对象替换开关,使其“更简单”、“更可扩展”和“更可维护”。

坦率地说,我不知道这样的系统如何变得更简单(尤其是通过使用对象),但我很想知道其他开发人员的意见。

忽略在 PHP 中使用对象的性能影响,我应该使用基于类的方法吗?

如果是,我如何构建我的 JSON API 以使用对象,而不添加太多代码(从而降低项目的可维护性)?

0 投票
2 回答
1858 浏览

php - 自定义错误处理程序来处理对象代码内部和外部的错误

我知道 Stackoverflow 上已经有很多与自定义错误处理程序相关的问题。但是,在阅读了其中的许多内容以及 PHP 手册之后,我仍然无法解决我的问题。因此,我发布了这个问题。

我的脚本目前的结构是这样的:

我的自定义错误处理程序已经正常工作。它捕获并处理设置错误处理程序后执行的代码中发生的所有 PHP 错误。

我的问题:

如果在类的方法中发生错误myObject,我想调用一个非静态方法:

$obj不在范围内myErrorHandler。如何访问$obj错误处理程序内部以调用的成员函数$obj
我目前有 300KB 的 PHP 代码,我无法更改所有函数的签名以添加$obj为参数(函数太多了!)。

我读到可以将自定义错误处理程序定义为对象的方法。但是,如果我这样做,它将无法捕获在创建myObject($obj) 的实例之前发生的错误。

我还阅读了有关异常的信息,但这似乎无助于解决我的问题。我不愿意使用全局变量。这里有两个问题解释了为什么应该避免使用全局变量:

0 投票
0 回答
1218 浏览

python - 从程序程序员的角度来看,学习和掌握 Python 的最佳方式是什么?

我是数学家,目前主要从事运筹学领域的工作,构建用于解决数学规划或优化问题的算法。

当我还是学生的时候,我学习了 Fortran、Pascal 和 C(哦,还有 Visual Basic),不是很深入,但在 CI 的情况下,它可以很好地管理指针、结构等。

后来,我一直在使用 Visual C++ 进行研究,为我的问题构建算法等等。我无法创建任何 GUI,并且我不使用对象,而是使用经典的过程视角,所以实际上我使用具有 C++ 的一些特性的 C。

有一段时间我尝试学习 Python。它看起来那么友好,新鲜,有趣,简单但强大......但最后,我有点困惑,因为很多不同的原因,例如:

  1. 我习惯了过程语言,而 Python 是面向函数的,至少有一点点。

  2. 我习惯了可以创建.exe文件的语言(编译),而 Python 是解释的。另外,当我们谈论创建复杂的算法等等时,我了解到,由于这个原因,C ——一般来说——比 Pyhton 快。

  3. 有不同版本的 Python,它们都是稳定且最新的!我的意思是,有 Python 2.x 和 Python 3.x。有些东西在版本 3 中有效,但在版本 2 中无效,等等。

  4. 也许这比前面的原因更主观,但我发现C 中的库比 Python 中的更多、更好、更稳定或更可靠。

  5. 此外,我发现在 Python 编程的不同 GUI 和不同风格之间进行选择有点困难,如 Python IDE、Tkinter、IronPython ......

确实认为 Python 是一种强大的语言,尽管它被解释了。而且我仍然认为它比 C 更漂亮。我喜欢 Python,但我希望我更喜欢它!

所以,最后,我的问题是,我怎样才能真正学习和掌握 Python,以一种确定的方式,以便我能够将它用作编程数学算法的主要选择?

当我说“确定”时,我的意思是,哪些是(在您看来)以可靠的方式学习和使用 Python 的最安全的途径和工具?哪些是更成熟和稳定的库、GUI 等等?

对不起,如果这个问题有点奇怪,但我想可能会有更多的人对 Python 有同样的疑问。

0 投票
0 回答
440 浏览

python - 返回否定条件与 if 块

如果我有一个应该在某些条件下执行操作的函数,并返回 null ,这更清晰:

或者

我已经阅读了每个函数都应该有一个返回点的范例。另一方面,python 的禅宗说 flat 比嵌套更好,更高版本在整个操作代码上方添加了一个嵌套级别(标记为 [...])。

还请记住,条件可能更复杂,例如,添加多个嵌套级别。

0 投票
1 回答
6305 浏览

javascript - JavaScript 中的过程方法

我最近观看了一个 JavaScript 视频教程,其中包含与此类似的代码:

这是一种常见的 JS 编码模式。作者说这是Javascript代码中程序化方法的一个例子。没看懂,能不能解释一下