プラス記号+
は、加算と文字列の連結に使用されますが、そのコンパニオンであるマイナス記号、は-
、通常、文字列のトリミングや減算以外の場合には表示されません。その理由や制限は何でしょうか?
JavaScriptの次の例を検討してください。
var a = "abcdefg";
var b = "efg";
a-b == NaN
// but
a+b == "abcdefgefg"
+
演算子が「数値の加算」と「文字列の連結」というまったく関係のない2つの意味でオーバーロードされるのは十分に悪いことです。ありがたいことに、いくつかの言語のような別個の連結演算子を提供する.
(Perl5の、PHP)、~
(Perl6の)、&
(VB)、++
...(ハスケル)、
->
(仮想メソッド呼び出しには必ずポインターのような間接参照が含まれるため、Cでのメンバーアクセスの逆参照を検討してください)。.
ますます一般的な慣習ですが、演算子を使用するためにメソッド呼び出し/メンバーアクセスを必要とする言語設計の法則はありません。Smalltalkにはメソッド呼び出し演算子がないことをご存知ですか?単純な並置object method
で十分です。