Tanda plus +
digunakan untuk penambahan dan untuk penggabungan string, tetapi pasangannya: tanda minus -
, umumnya tidak terlihat untuk memotong string atau kasus lain selain pengurangan. Apa yang bisa menjadi alasan atau batasan untuk itu?
Pertimbangkan contoh berikut dalam JavaScript:
var a = "abcdefg";
var b = "efg";
a-b == NaN
// but
a+b == "abcdefgefg"
+
operator biner kelebihan beban dengan dua arti yang sama sekali tidak terkait "penambahan numerik" dan "penggabungan string". Untungnya, beberapa bahasa menyediakan operator gabungan yang terpisah seperti .
(Perl5, PHP), ~
(Perl6), &
(VB), ++
(Haskell), ...
->
(pikirkan akses anggota dereferencing dalam C, karena panggilan metode virtual harus melibatkan tipuan seperti pointer). Tidak ada hukum desain bahasa yang mengharuskan pemanggilan metode / akses anggota untuk menggunakan .
operator, meskipun itu adalah konvensi yang semakin umum. Tahukah Anda bahwa Smalltalk tidak memiliki operator panggilan metode? Penjajaran sederhana object method
sudah cukup.