2011-07-18 4 views
1

Ruby에서 클래스 연결을 만드는 데 문제가 있습니다. 동적 입력 언어이므로 문제가 있습니다. Java에서는 다음과 같이 작성합니다.Ruby 클래스 연결

public class Foo { 
    ... 
} 

public class Bar { 
    public Foo foo; 
    ... 
} 

Ruby에서 비슷한 것을 쓸 수 있습니까? 당신이 무슨 말을 들어

답변

3
class Foo 

end 

class Bar 

    attr_accessor :foo 

    def initialize (foo) 
    @foo = foo 
    end 

end 

foo = Foo.new 
bar = Bar.new(foo) 

puts bar.foo 

, 당신은 형 안전의 어떤 종류를 필요로 보인다. 당신은 그렇게함으로써 뭔가를 얻을 수 있습니다.

def initialize (foo) 
    raise ArgumentError, "You must provide a valid Foo instance" unless foo.instace_of?(Foo) 
    @foo = foo 
end 
+0

나는별로 명확하지 않았습니다. 기존 Foo 객체를 Bar에 전달하고 싶습니다. –

+0

나는 이것을 생성자에서 전달하려고한다고 생각하니? 편집 됨 –

+0

네, 맞습니다. 나는 이미이 솔루션에 대해 생각해 봤지만 생성자를 통해 잘못된 변수를 전달할 수 있기 때문에 위험한 것으로 보인다. 동적 타이핑의 가격이라고 생각합니다. 어쨌든 고마워! –