[ruby-list:46310] Re: rubyのクラス内のメソッドの使用について
From:
小西 弘将 <konishi@...>
Date:
2009-08-20 08:13:22 UTC
List:
ruby-list #46310
小西 弘将です。
こったやり方もあるでしょうが、別解はこんな感じでしょうか?
自分の趣味では2を取ると思います。
オブジェクトをやたら作りたくなかったらシングルトンにするのかなぁ。
#-----------------------------------
class Test2
def test_text( abc )
puts abc
return abc
end
def test_abc( cde )
puts cde
return cde
end
def test_add( dddd )
a = test_text("abcd")
b = test_abc("efgh")
c = dddd
e = a + b + c
end
end
t2 = Test2.new
dd2 = t2.test_add( "12345" )
puts dd2
#-----------------------------------
#-----------------------------------
module Test3
def test_text( abc )
puts abc
return abc
end
def test_abc( cde )
puts cde
return cde
end
def test_add( dddd )
a = test_text("abcd")
b = test_abc("efgh")
c = dddd
e = a + b + c
end
module_function :test_text, :test_abc, :test_add
end
dd3 = Test3.test_add( "12345" )
puts dd3
#-----------------------------------
#-----------------------------------
module Test4
class TestSub
def text( abc )
puts abc
return abc
end
def abc( cde )
puts cde
return cde
end
end
def test_add( dddd )
obj = TestSub.new
a = obj.text("abcd")
b = obj.abc("efgh")
c = dddd
e = a + b + c
end
module_function :test_add
end
dd4 = Test4.test_add( "12345" )
puts dd4
#-----------------------------------
>前川です。
>
>class Test1
>
> def self.test_text( abc )
> puts abc
> return abc
> end
>
> def self. test_abc( cde )
> puts cde
> return cde
> end
>
> def self.test_add( dddd )
> a = Test1.test_text("abcd")
> b = Test1.test_abc("efgh")
> c = dddd
> e = a + b + c
> end
>
>end
>
>dd = Test1.test_add( "12345" )
>puts dd
>
>上記サンプルコードで、Test1クラスにある
>test_add は、クラス内のtest_text と、
>test_abc を使用していますが、
>クラス内のメソッドを使用する場合でも、
>クラス名 Test1.test_add と記述するのでしょうか?
>
>上記コーディングで、動作は確認出来ましたが、
>同じクラス内にあるのに、なぜ、クラス名を指定するのか
>(私の理解力不足です。)いまいち、納得できていません。
>
>ご指導、よろしくお願いします。
>
>了
>
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
株式会社レアックス 地質部 小西 弘将
TEL 011-780-2481 FAX 011-780-2488
E-mail : konishi@raax.co.jp
URL : http://www.raax.co.jp/
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜