Это не принято в ОО языках.На самом деле в Smalltalk нет ++
, языка, который придумал термин «объектно-ориентированное программирование» (и на язык Ruby сильнее всего влияет).То, что вы имеете в виду, это то, что он обычен в C и языках, близко имитирующих C. В Ruby действительно есть синтаксис, похожий на C, но он не слишком рабский в соблюдении традиций C.
Какпочему его нет в Ruby: Matz не хотел этого.Это действительно конечная причина.
Причина, по которой в Smalltalk ничего подобного не существует, заключается в том, что это часть основополагающей философии языка, согласно которой присвоение переменной принципиально отличается от вида , чем отправка сообщения.к объекту - это на другом уровне.Это мышление, вероятно, повлияло на Мэтца при разработке Ruby.
Было бы невозможно включить его в Ruby - вы могли бы легко написать препроцессор, который преобразует все ++
в +=1
.но, очевидно, Матсу не понравилась идея оператора, который сделал «скрытое назначение».Также немного странно иметь оператор со скрытым целочисленным операндом внутри него.Ни один другой оператор в языке не работает таким образом.