Pascal プログラミング言語で OOP を学んでいます。インターネットをグーグル検索した後、OOP を見つけました- The GNU Pascal Manaul
この関数宣言はどういう意味ですか?
function Baz (b, a, z: Char) = s: Str100; { not virtual }
今まで見= xx
たことがなく、パスカル構文にはないようです。
Pascal プログラミング言語で OOP を学んでいます。インターネットをグーグル検索した後、OOP を見つけました- The GNU Pascal Manaul
この関数宣言はどういう意味ですか?
function Baz (b, a, z: Char) = s: Str100; { not virtual }
今まで見= xx
たことがなく、パスカル構文にはないようです。
これは非標準の拡張機能のようです。問題の関数の実装は次のとおりです。
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;
It appears that the = s
syntax indicates that the return value of the function is stored in the variable s
inside the function body. I'm not sure why that would need to be exposed in the object interface, though.
あなたの質問にはお答えできませんが、PythonやGroovyなどの言語で OOP を学ぶことをお勧めします。パスカルは、実際にキャリアを構築できるものではありません。他の言語がどのように機能するかについてのアイデアを提供するために、第 3 言語または第 4 言語として使用することをお勧めしますが、第 1/主要言語としてではありません。
どちらもインタラクティブなコンソール (Python の場合はiPythonをお勧めします) を提供し、小さな実験を行うことができます。
注: 私が Pascal についてあまり知らないという理由で私を攻撃する人もいます。どこでそのアイデアを思いついたのかわかりません。私は SO で 200,000 ポイント以上を取得しており、30 のプログラミング言語を知っています (== 大量のコードを記述したことを知っています)。キャリアの初めに Pascal でコードを記述しました。
あなたの最愛のプログラミング言語が、あなたがふさわしいと思う認識を得られないとき、私はそれが痛いことを理解しています. その言語を使用することを決定したのはあなたなので、それが最良の言語でなければなりません。そうでなければ、あなたの決定は間違っているでしょう。
しかし、私が知っているすべての言語で書かれたコードを比較すると、Pascal/Delphi/Modula/Oberon はさまざまな理由からお勧めしません。Delphi は、Borland のおかげで勢いを増しましたが、それはもう終わりです。私は優れた Delphi プログラマーが書いたコードを見たことがありますが、最初に考えたのは次のことでした: メンテナンス コスト。