Почему добавление «оператора» к методу в то время как оператор присваивания + = нет?Операторы присваивания Ruby
Почему операторы работают так:
ruby-head > 2.+(4)
=> 6
Хотя операторы присваивания работают таким образом:
ruby-head > i = 1
=> 1
ruby-head > i += 1
=> 2
ruby-head > i.+=(1) SyntaxError: (irb):26: syntax error, unexpected '=' i.+=(1) ^from /Users/fogonthedowns/.rvm/rubies/ruby-head/bin/irb:17:in `'
Интересно. Как бы + = отреагировать на повторную реализацию оператора «+»? Возможно, '+ =' является просто синтаксическим сахаром для назначения переменной в результате переменной. + (Некоторое значение). –
Это почти дубликат http://stackoverflow.com/questions/4360810/ruby-operator-method-calls-vs-normal-method-calls – Phrogz
Ваш вопрос: «Почему эта вещь спроектирована так, как есть?» Вы ожидаете ответа иначе, чем «Потому что дизайнер языка решил, что это так?» Вы надеетесь, что сам Мац объяснит свое обоснование дизайна? – Phrogz