Знак "плюс" +використовується для додавання і для з'єднання рядків, але його супутник: знак мінус -, як правило, не сприймається для обрізки рядків або іншого випадку, окрім віднімання. Що може бути причиною чи обмеженнями для цього?
Розглянемо наступний приклад у JavaScript:
var a = "abcdefg";
var b = "efg";
a-b == NaN
// but
a+b == "abcdefgefg"
+оператор перевантажений двома абсолютно неспорідненими значеннями "числове додавання" та "з'єднання рядків". На щастя, деякі мови надають окремий оператор конкатенації, такий як .(Perl5, PHP), ~(Perl6), &(VB), ++(Haskell),…
->(думаю, що перенаправлення доступу членів в C, оскільки виклики віртуальних методів обов'язково включають вказівник, як непряме). Не існує закону мовної розробки, який вимагає виклику методу / доступу учасників для використання .оператора, хоча це все більш поширена умова. Чи знаєте ви, що у Smalltalk немає оператора виклику методу? object methodДостатня проста компонування .