2009年7月 8日

[ruby-list:46182] Re: メソッドの扱いについて・ruby-list:46179

るびきちさん、ありがとうございました。


rubikitch@xxxxx wrote on 2009/07/07 21:31:01:

> From: eiichi_maekawa@xxxxx
> Subject: [ruby-list:46176] メソッドの扱いについて
> Date: Tue, 7 Jul 2009 13:37:01 +0900


> るびきちです。

> > 前川です。
> >
> > 文字変換関連、どうにか、メソッドを作りこみましたが、
> > 作ったメソッドを、外部参照で、使用できるようにしたいのですが。
> >
> > クラスにした場合、
> >
> > class MyConversion
> > def initialize(data)
> > @data = data
> > end
> >
> > def textToHex
> > @data.unpack('H*')[0] #成瀬さん ありがとうございました。
> > end
> >
> > def hexToText
> > @data.gsub(/../){|c| c.hex.chr} #永井さん ありがとうございました。
> > end
> > end
> >
> > 呼ぶ側は、
> >
> > result = MyConversion.new('船')
> > result1 = result.textToHex
> >
> > あるいは、
> >
> > result1 = MyConversion.new('船').textToHex
> >
> > ですが、メソッドとして、外部参照するような
> > 使い方(メソッドの延長??) MyConversion.textToHex(データ) に
> > は、できないでしょうか。
> > たとえば、
> >
> > convFunc = MyConversion.new #MyConversion を使用するための定義(実態の
作成)
> > result = convFunc.textToHex('船') または、'船'.convFunc.textToHex
> > result1 = convFunc.textToHex('長崎') '長崎'.convFunc.textToHex
> >
> > というような具合に。

> できますよ。

> # メソッド名は単語を_で区切るのがRubyのやり方です。

> # -*- coding: euc-jp -*-
> class MyConversion
> def text_to_hex(data)
> data.unpack('H*')[0]
> end

> def hex_to_text(data)
> data.gsub(/../){|c| c.hex.chr}
> end
> end
> MyConversion.new.text_to_hex('船') # => "c1a5"

> # クラスメソッドを定義するのはこうする
> class MyConversion
> def self.text_to_hex(data)
> data.unpack('H*')[0]
> end

> def self.hex_to_text(data)
> data.gsub(/../){|c| c.hex.chr}
> end
> end
> MyConversion.text_to_hex('船') # => "c1a5"

> --
> rubikitch
> Blog: http://d.hatena.ne.jp/rubikitch/
> Site: http://www.rubyist.net/~rubikitch/
> Twit: http://twitter.com/rubikitch/
> 『Ruby逆引きハンドブック』
http://d.hatena.ne.jp/rubikitch/20090525/rubybook

投稿者 xml-rpc : 2009年7月 8日 07:55
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/86516
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。