find_team
클래스 메소드가 포함 된 Team
클래스가 있습니다. 방법은 어떤 개체가 발견되지 않으면 하나가 발견되는 경우 Team
객체를 반환하거나 nil
:조건부로 객체 인스턴스에 Ruby 변수를 할당하는 방법
class Team
@@all_teams = []
def self.find_team(name)
index = @@all_teams.find_index { |t| t.name == name }
if index.nil?
nil
else
@@all_teams[index]
end
end
end
이 클래스를 구현에서, 나는 그것이 존재하는 경우 올바른 Team
객체에 변수를 할당하거나 새로운 Team
을 작성해야 만약 그렇지 않다면 객체. 나는 가장 명확하고 빠른 것을 찾기 위해 고심하고있다. ruby-ist하는 방법. 덜 장황하고 반복적 인 것에
t1 = Team.find_team("Some Team") ? Team.find_team("Some Team") : Team.new("Some Team")
t2 = Team.find_team("Some Other Team")
t2 ||= Team.new("Some Other Team")
t3 = if Team.find_team("Another Team")
Team.find_team("Another Team")
else
Team.new("Another Team")
내가 두 번째 예를 선호하지만이 시나리오에서 누락 일부 루비 트릭이 있는지 궁금 해요 : 일부 옵션은 내가 생각했습니다. 에 대해 어떻게
나중에 참조 할 수 있도록이 전화를 t 그는 싱글 톤 패턴. – Doorknob
Team.find_teams는 싱글 톤 메서드이지만 그 클래스에는 많은 인스턴스 메서드가 있다는 것을 알고 있습니다. 싱글 톤 방법에 특히 중요한이 질문에 대해서는 아무 것도 없습니다. –