РУБИН: как разрешить круговую зависимость в постоянных определениях? - PullRequest
3 голосов
/ 04 декабря 2010
class A
  X = 9
  Y = B::X
end

class B
  X = 8
  Y = A::X
end

У меня есть два класса, каждый из которых определяет некоторые константы, но требует констант от другого, как показано выше, но это дает мне ошибку:

round.rb: 7: in <class:A>': uninitialized constant A::B (NameError) from circular.rb:5:in '

Есть ли способ устранить ошибку?

Спасибо.

1 Ответ

3 голосов
/ 04 декабря 2010

Работает, если разделить определение А на две части:

class A
  X = 9
end

class B
  X = 8
  Y = A::X
end

class A
  Y = B::X
end
...