1
특정 키에 액세스 할 때 내 자신의 동작을 소개하기 위해 Ruby의 Hash
을 서브 클래 싱하려고합니다. 이 구성 추가 매개 변수가 필요합니다, 그래서 나는과 같이 내 사용자 지정 해시를 구현 한 : 당신이 볼 수 있듯이 내가 반환에 내 해시를 원하는만큼해시를 서브 클래 싱하는 이상한 행동
class PlayerCollection < Hash
def new(server)
@server_player = SpecialPlayer.new(server, "Server")
super(nil)
end
def [](key)
key == "Server" ? @server_player : super(key)
end
def []=(key, value)
key == "Server" ? value : super(key, value)
end
end
, 나는, nil
의 값을 super
를 호출 해요 nil
값이 해시에서 발견되지 않습니다. 그러나 키가 발견되지 않으면 Hash.new(server)
으로 해시를 생성 한 것처럼 내 해시가 server
개체를 반환합니다.
이 동작을 어떻게 피할 수 있습니까? 어떤 도움을 주시면 감사하겠습니다!
OMG. 당신은 절대적으로 옳습니다. 나는 심지어 깨닫지 않았다. –
OK, 하루 동안 저에게 충분한 커피입니다! 나는 지금 어리 석다. D : –