追記あり メモ 動的型付け言語のRubyでその恩恵を目一杯受けていたコードを,Crystalなど静的型付け言語へ移植しようとすると,思わぬ小石に躓くことが多い。 今日の小石は inialize 中の self 。 親子関係のあるオブジェクト間で相互参照したいようなとき,基本的に「実際に使用される瞬間の状態がすべて」な Ruby だと class Parent attr_reader :name attr_reader :child def initialize(_name) @name = _name @child = Child.new(self) end end class Child attr_reader :parent def initialize(_parent) @parent = _parent end end the_parent = Parent.new("John")
