Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop Robert Martin所说的“只有函数从早期编程中存活下来,而不是常规”是什么意思_Oop_Language Agnostic_Language Design_Paradigms_Language History - Fatal编程技术网

Oop Robert Martin所说的“只有函数从早期编程中存活下来,而不是常规”是什么意思

Oop Robert Martin所说的“只有函数从早期编程中存活下来,而不是常规”是什么意思,oop,language-agnostic,language-design,paradigms,language-history,Oop,Language Agnostic,Language Design,Paradigms,Language History,摘自罗伯特·马丁(Robert Martin)撰写的《清洁代码》(Clean Code)一书: 在编程的早期,我们构建了我们的例程系统 和子例程。然后,在Fortran和PL/1时代,我们编写了 程序、子程序和函数系统。现在只有 功能从早期就存在了 在我看来,这段摘录告诉我们,例行程序是一件坏事,正在走出编程时代 我做了一些搜索,发现Fortran中子程序和函数的区别是: 子例程对输入变量执行一些操作,并作为 调用子例程的结果,修改输入变量。 函数将一个或多个参数作为输入并返回单个 产值。 虽然

摘自罗伯特·马丁(Robert Martin)撰写的《清洁代码》(Clean Code)一书:

在编程的早期,我们构建了我们的例程系统 和子例程。然后,在Fortran和PL/1时代,我们编写了 程序、子程序和函数系统。现在只有 功能从早期就存在了

在我看来,这段摘录告诉我们,例行程序是一件坏事,正在走出编程时代

我做了一些搜索,发现Fortran中子程序和函数的区别是:

子例程对输入变量执行一些操作,并作为 调用子例程的结果,修改输入变量。 函数将一个或多个参数作为输入并返回单个 产值。 虽然我没有编写Fortran,只编写C,但C支持的构造与int fooint x和void fooint*x中的构造相同

引起我注意的是,我从来没有听说过void fooint*x在C语言中是一个糟糕的约定,所以我想弄清楚Robert Martin的这段摘录是什么意思


还有一个问题。从OOP的角度来看,如果我想在C中模拟OOP,例程是不是比函数更好的选择?

一旦允许函数不返回任何内容或丢弃函数结果,使用单独的语言构造基本上是多余的。C或C++空虚函数实际上就像一个子程序,它看起来像一个函数,使用相同的关键字。因此,您只需要保存一个关键字,而且语言更加统一。C是大多数语言在今天的实践中使用的语法的起源。

从长远来看,当代码变大时,更容易理解的是什么。一个保证不能改变X或校验X例程的校验X函数,它可以很好地增加x的一个,唯一的方法是命中文档。“Joajimaskson”,它并不能真正解释C和C++中的许多函数,它们只返回状态码或是空函数。每个帖子问一个问题,尽量避免基于观点的问题。我会认真考虑一些姐妹网站,而不是更好的地点。其次,您可能应该询问其他语言标签中的人。使用Fortran的人对子程序很在行。想一想你用来找到合适人选的标签。@VladimirF谢谢你的推荐。我可以问一下我可以去哪个姐妹网站吗?看看主题是什么。如果你要求的话,最好删除这个。也有计算机科学stackexchange,但这可能与主题无关,请查看他们的描述。虽然我同意删除call关键字在这里是一种效果,但在某种程度上,在纯函数语言之外,子例程的简化是一种没有结果的函数,在其他地方会导致相应的复杂性。例如,在FORTRAN术语中,函数引用是一个主引用,而不是一个函数,它返回的结果是一个主函数或一个不返回结果的函数,它只能用作一个独立的语句。另外,我并不是在添加Fortran,而是在添加C族语言。