Znak plus +
służy do dodawania i konkatenacji łańcuchów, ale jego towarzysz: znak minus -
, na ogół nie jest widoczny do przycinania łańcuchów lub w innych przypadkach innych niż odejmowanie. Jaki może być tego powód lub ograniczenia?
Rozważ następujący przykład w JavaScript:
var a = "abcdefg";
var b = "efg";
a-b == NaN
// but
a+b == "abcdefgefg"
+
operator binarny jest przeciążony dwoma całkowicie niepowiązanymi znaczeniami „dodawanie liczbowe” i „konkatenacja ciągów”. Na szczęście niektóre języki zapewniają osobny operator konkatenacji, taki jak .
(Perl5, PHP), ~
(Perl6), &
(VB), ++
(Haskell),…
->
(myśl, że dereferencjonowanie dostępu członków w C, ponieważ wirtualne wywołania metod muszą koniecznie obejmować pośrednie wskaźniki). Nie ma prawa projektowania języka, które wymaga wywołań metod / dostępu członków do korzystania z .
operatora, chociaż jest to coraz bardziej powszechna konwencja. Czy wiesz, że Smalltalk nie ma operatora wywołań metod? object method
Wystarczy proste zestawienie .