返信の優先順位を少し明確にしたいのですが、 ステートメントは一般的な優先順位である のルールに反するようです。例えばスモールトークReturn Precedence
(私が欲しいものである)の発現
^ 2 + 3.
戻り5それは ^の単項演算子以来、わずか2を返すべきではありません一つはバイナリである+オーバー優先順位が高いのですか? 。
返信の優先順位を少し明確にしたいのですが、 ステートメントは一般的な優先順位である のルールに反するようです。例えばスモールトークReturn Precedence
(私が欲しいものである)の発現
^ 2 + 3.
戻り5それは ^の単項演算子以来、わずか2を返すべきではありません一つはバイナリである+オーバー優先順位が高いのですか? 。
Smalltalkに「単項演算子」はありません。単項メッセージ(「受信者メッセージ」)、2項演算子(「受信者+引数」)、およびn個のキーワードメッセージ(「受信者メッセージ:引数1」)の3つの優先レベルのみが存在する。すべての場合において、受信機が最初に来る。
"^"は演算子ではありませんが、return文を示します。同様に、 "-4"では、 " - "は演算子ではなく数値リテラルの一部です。
Smalltalkの^本当に演算子ですか?私はそれがむしろ予約シンボルだと思う。そして、周囲のメソッドが返ってきたときに、 "ぶら下がった" + 3のときにはどうなりますか?私はreturnステートメントが "通常の" Smalltalkメソッドで起こる最後のステートメントなので、その動作が正しいと思います。
よろしく
私は、演算子/メソッドを同じ意味にすることを意味していました。振る舞いは正しいですが、^の優先順位規則がどのように定義されているか、それが特別扱いかどうかを知りたいのですが。 – Jatajuuf
だから私はそれを後ろ向きにしていた、私は思った^ 2に送られるメッセージだった。ありがとう、それはそれをクリアした。 – Jatajuuf
'^'はあなたがそれを考えるならthisContextに送るメッセージです(またはthisContextの親)^^ – mathk
squeak 3.9まで、-3のような負のリテラル番号でスペースが受け入れられました。これは、文書化されていないそれが単項演算子とみなされる可能性のある混乱の原因となります。 –