Hatena::ブログ(Diary)

はけの徒然日記 このページをアンテナに追加 RSSフィード

2005 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 04 | 05 | 08 | 09 | 10 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 |
2011 | 01 | 02 | 03 | 04 | 11 | 12 |
2012 | 02 | 03 | 05 |
2014 | 02 | 03 | 04 | 05 | 12 |
2015 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 04 | 05 | 08 | 09 | 11 | 12 |
2017 | 01 | 02 | 03 | 04 |

2006-08-15(Tue)

演算子の定義

Ruby勉強

クラス独自の演算子を定義する。

class Test
  attr_accessor :array
  def initialize
    @array = [1, 2, 3, 4, 5]
  end
  def []=(idx,val)   # 配列の代入
    @array[idx] = val
  end
  def [](idx)        # 配列の参照
    @array[idx]
  end
  def +(other)       # 二項演算子
    ary = []
    @array.size.times{|i| ary[i] = @array[i] + other[i]}
    ary
  end
  def -@             # 単項演算子
    ary = []
    @array.size.times{|i| ary[i] = @array[i] * -1 }
    ary
  end
end

a = Test.new
p a.array      # => [1, 2, 3, 4, 5]
p a[1]         # => 2
a[1] = 100
p a.array      # => [1, 100, 3, 4, 5]
p a + a        # => [2, 200, 6, 8, 10]
p -a           # => [-1, -100, -3, -4, -5]

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/hake/20060815/p2