$ castの呼び出しが機能またはタスクのものであるかどうかをどのように判断できますか?それぞれの呼びかけはどうやって違いますか?私が理解することの1つは、関数呼び出しで、assert()を使用できることです。しかしそれ以外に、電話が$キャストの機能か$キャストタスクの場合はどうなるでしょうか?どちらの場合でも、私たちは$ cast(pkt、pkt1)のようなことをしています。
LRMは
task $cast(singular dest_var, singular source_exp);
として
function int $cast(singular dest_var, singular source_exp);
と$キャストタスクのよう$キャスト関数の構文を与え、
ことを説明するために行きますいずれかのタスクとして$ castを使用する無効な代入がどのように処理されるかは関数によって決まります。
タスクとして呼び出されると、$ castはソース式 を宛先変数に割り当てようとします。割り当てが無効な場合、実行時に エラーが発生し、宛先変数は変更されません。
関数として呼び出されると、$ castはソース式 をデスティネーション変数に割り当てようとし、キャストが合法であれば1を返します。 キャストが失敗した場合、関数は代入を行わず0を返します。 関数として呼び出されると、ランタイムエラーは発生せず、 の出力先変数は変更されません。
説明してください。
LRMは、assert()の使用や$ castの周りのブロックが$ cast関数を選択したと言っていると思われますか? –