罗伯特·马丁(Robert Martin)的意思是“只有功能可以在编程的早期生存,而不是例行的” [保留]

问题描述 投票:-1回答:1

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

在编程的初期,我们组成了例程系统和子例程。然后,在Fortran和PL / 1时代,我们组成了程序,子程序和功能的系统。如今只有功能从早期就可以保留下来。

我认为,这段摘录告诉我们例程是一件坏事,并且已经脱离了编程时代。

我进行了一些搜索,发现子例程和函数在Fortran中]之间的区别是:

  • 子例程对输入变量执行一些操作,并且作为调用该子例程的结果,将修改输入变量。
  • 函数将一个或多个参数作为输入并返回单个输出值。
  • 尽管我没有写Fortran而是只写C,但是C支持的结构与int foo(int x)void foo(int* x)中的相同。

引起我注意的是,我从未听说过void foo(int* x)是C语言中的错误约定,所以我想弄清楚此摘录中罗伯特·马丁的意思是什么。

另一个问题。从OOP的角度来看,如果我想在C中模拟OOP,例程是对函数的好选择吗?

摘自罗伯特·马丁(Robert Martin)编写的《干净代码》(Clean Code):在编程的早期,我们组成了例程和子例程系统。然后,在Fortran和PL / 1时代,我们组成了...

oop language-agnostic language-design subroutine language-history
1个回答
0
投票

一旦您允许函数不返回任何内容或丢弃函数结果,使用单独的语言构造基本上是多余的。 C或C ++ void函数实际上就像一个子例程,看起来就像一个函数,并且使用相同的关键字。因此,您省去了一个关键字的需要,并且语言更加统一。 C是当今实践中使用的大多数语言的语法起源。

© www.soinside.com 2019 - 2024. All rights reserved.