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