[#40891] 配列をシャッフル — Hideo Konami <konami@...>

小波です。

25 messages 2005/07/01
[#40899] Re: 配列をシャッフル — ktokita <ktokita-p@...> 2005/07/01

時田です

[ruby-list:40941] オブジェクト配列の単一化は?

From: 小西 弘将 <konishi@...>
Date: 2005-07-27 09:30:17 UTC
List: ruby-list #40941
小西です。いつもお世話になります。

単一のオブジェクトの配列で、オブジェクトの同一性をObject#__id__ではなく、
オブジェクトに格納された@nameの比較で重複の除去をしようとして、下記のよ
うなコードを組んだわけですが...
どうもうまくいきません。
eql?の再定義がうまくいっていないのでしょうか?
それともこの作戦ではできないのでしょうか。教えてください。

class Hoge
	def initialize( n )
		@name = n
	end
	def eql?( otr )
		@name.eql?( otr.name )
	end
  attr_accessor :name
end

dat = [ Hoge.new( "hoge" ),
	 			Hoge.new( "hage" ),
				Hoge.new( "boke" ),
				Hoge.new( "hage" ),
				Hoge.new( "boke" ) ]
dat.uniq!

dat.each do |d| 
	print d.name,"\n" 
end
# I want...
#hoge
#hage
#boke

# but...
#hoge
#hage
#boke
#hage
#boke



In This Thread

Prev Next