読者です 読者をやめる 読者になる 読者になる

素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

Array#unique

class Array
  def unique
    ret = [], done = {}
    each{|i|
      unless done.key?(i)
        done[i] = :done
        ret.push(i)
      end
    }
    return ret
  end
end

Rubyおもしろいなあ。ハッシュのキーにオブジェクトも指定できて、selfがスコープチェインに入ってる。
Array#uniq!みたいな破壊的メソッドがselfじゃなくてnilを返すのは、なんでなのかよく分からない。Schemeも破壊的メソッドが返す値が不定だったりするし。
selfを返すと速度とかに影響するのかな。