0

我正在使用 pascal 编程语言学习 OOP。在网上搜索后,我找到了OOP - The GNU Pascal Manaul

这个函数声明是什么意思?

function Baz (b, a, z: Char) = s: Str100; { not virtual }

以前没见过= xx,好像pascal语法没有。

4

2 回答 2

1

这似乎是一些非标准的扩展。有问题的函数的实现是:

function FooParent.Baz (b, a, z: Char) = s: Str100;
begin
  WriteStr (s, 'FooParent.Baz (', b, ', ', a, ', ', z, ')')
end;

通常在 Pascal 中,函数的名称被用作函数返回变量,所以上面的函数会这样写:

function FooParent.Baz (b, a, z: Char): Str100;
begin
  WriteStr (Baz, 'FooParent.Baz (', b, ', ', a, ', ', z, ')')
end;

看起来= s语法表明函数的返回值存储在s函数体内的变量中。不过,我不确定为什么需要在对象接口中公开它。

于 2009-11-03T09:06:13.750 回答
-10

我无法回答您的问题,但我建议使用PythonGroovy等语言学习 OOP 。帕斯卡并不是真正可以建立职业的东西。我宁愿建议将其作为第三种或第四种语言,让您了解其他语言的工作原理,而不是作为您的第一/主要语言。

两者都提供了一个交互式控制台(对于 Python,我建议使用 iPython),您可以在其中进行小型实验。

注意:有些人攻击我,理由是我对帕斯卡了解不多。我不确定你从哪里得到这个想法。我在 SO 上有超过 20 万分,我知道 30 种编程语言(知道 == 在其中编写了大量代码),我在职业生涯开始时就用 Pascal 编写过代码。

我理解当你钟爱的编程语言没有得到你认为它应得的认可时会很痛苦。毫无疑问:您决定使用该语言,因此它必须是最好的语言 - 否则您的决定将是错误的。

但是当我比较用我知道的所有语言编写的代码时,出于各种原因,我不推荐使用 Pascal/Delphi/Modula/Oberon。由于 Borland,Delphi 获得了一些牵引力,但一切都结束了。我看过优秀的 Delphi 程序员编写的代码,我的第一个想法是:维护成本。

于 2009-11-03T08:55:25.767 回答