Можно ли сказать ruby ​​принимать левые переменные в определенных случаях? - PullRequest
2 голосов
/ 08 мая 2011

поведение, которое я ищу, чтобы я мог определить методы для получения результатов, подобных этим:

> 2i
=> Complex(0,+2i)
> 2²
=> 4

1 Ответ

5 голосов
/ 08 мая 2011

Для первого вы можете добавить пользовательские методы экземпляра к Fixnum, например:

class Fixnum
  def i
    Complex(0, self)
  end
end

> 2.i
# => (0+2i)

И, как указал J -_- L, вы можете сделать то же самое для второго в Ruby 1.9, хотя вашему rb-файлу потребуется # encoding: utf-8 вверху.

И, как указал DNNX, проблема создания мнимых чисел в Ruby уже решена классом Complex:

require 'complex'
2.im 
#=> (0+2i)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...