質問

私は現在 Perl プログラミングを勉強しているのですが、次のようなステートメントに遭遇しました。

return bless { }, $type;

いい考えがある return bless { }; そうするだろう、そして私もそれを知っている return $type; しかし、コンマで区切るとステートメントにどのような影響があるのでしょうか。また、すべての単項演算子に対して同じように機能するのでしょうか?

役に立ちましたか?

解決

祝福する は単項演算子ではないので、何が起こるかというと、 $type に渡される bless (ハッシュリファレンスを祝福するクラスの名前として使用されます)。

唯一特別なことは 戻る つまり、サブルーチンが呼び出されたコンテキストに応じて、右側の式がリスト、スカラー、または void コンテキストで評価される可能性があるということです。

カンマ演算子 においては何ら異なる解釈はされません return 他の場所よりもステートメントを作成することができます (ただし、 return 声明)。

他のヒント

事前定義されたPerl関数は、括弧なしの有無にかかわらず呼び出すことができます。他の言語から来る人のほとんどは、これらの機能をキーワード/演算子と混同しています。

祝福、undef、プッシュ、ポップ、シフト、無シフト、印刷、分割、結合などはすべて機能です。

したがって、これら2つは同等です。

 return bless { }, $type;
 return bless({ }, $type);

しかし、これら2つは次のとおりです。

 print 2 * 3 + 2; # prints 8
 print(2 * 3) + 2; # prints 6 (with a warning if warnings pragma is on)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top