initialize 메서드가 호출 된 후 실행되는 루비 코드를 작성하고 싶습니다. 이 코드는 클래스 또는 모듈에있을 수 있습니다. 어떻게 쓸 수 있니?initialize 메서드 후 메서드 실행
class Base
def after_init
puts "after init"
end
class A < Base # Option 1, use a class
end
class B < Base
def initialize
puts "in init"
end
end
module MyMod
def after_init
puts "after init"
end
end
class C
include Module
end
$> A.new
=> "after init"
$> B.new
=> "in init"
=> "after init"
$> C.new
=> "after init"
내가 분명히하고 싶은 않는다 super
에 명시 적으로 호출 할 수 있습니다 : 여기
: 모듈로? –
사용자가 사용할 라이브러리를 작성 중입니다. 사용자는 클래스를 확장하거나 모듈을 포함시킵니다. 추가 된 동작은 완전히 초기화되는 사용자 클래스의 상태에 따라 다릅니다. 사용자 클래스의 끝에서'super '를 호출해야한다는 요구 사항이 너무 엄격해서 버그가 발생하기 쉽습니다. – Max