문자열로 가득 찬 루비 배열의 일관된 해시를 만드는 것이 가능한지 궁금합니다. 요구 사항은 어레이가 순서와 관계없이 동일한 값을 포함하는 경우 해시가 항상 동일하다는 것입니다.루비 배열의 일관된 해시 문자열을 만드는 방법은 무엇입니까?
>> a = ["a", "b", "c", "d"]
>> SomeModule.hash(a)
=> "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"
>>
>> b = ["d", "b", "c", "a"]
>> SomeModule.hash(b)
=> "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"
>>
>> SomeModule.hash(a) == SomeModule.hash(b)
=> true
Zlib 또는 digest는 문자열 만 처리하지만 항상 배열을 정렬하고 작업에 참여해야했습니다.
그럼 더 좋은 점이 있습니까?
감사합니다. 그러나 이것은 실제로 피하고 싶었던 것입니다. –
지금 마지막 문장을 봅니다. 그러나 요소의 순서가 중요하지 않아도 정렬 할 수 있는지 확실하지 않습니다. – iltempo
배열을 집합으로 변환하면 중복 요소를 잃게됩니다. http://www.ruby-doc.org/stdlib-1.9.3/libdoc/set/rdoc/Set.html. 이것이 당신이 원하는 것인지 모른다. – iltempo