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 | 05 | 06 | 07 | 08 |

2006-09-24(Sun)

Module

Ruby勉強

昨日のLOGOマネスクリプトは肝心のタートルの動作制御についての記述ソースの中にあるので使い勝手が悪い、何とかならんかと思っていたらModuleを思い出した。これだとメソッドdrawだけ別ファイルに追い出せます。

Moduleファイルmoduletest.rbを用意して

# ファイルの場所
#   F:/ruby_RDE/moduletest.rb
module MyModule
  def add(n)
    n + 1
  end
end

スクリプト内でincludeすれば

require "F:/ruby_RDE/moduletest.rb"
include MyModule

p add(1) # => 2

任意のメソッドだけ別ファイルにできました。

ちなみにrequireに書くファイルパスの部分を変数にしても動作しました。ということはアプリ動作中に任意のモジュールファイルを選択して読むなんてことができますね。


と思ったら、require fileA → require fileB → require fileA

したら最後のfileAのincludeが有効にならない。(requireは最初の1回のみ有効)

まぁload fileAすれば大丈夫なんだけどメモリ管理?とかで問題にならないのだろうか。。。 

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

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


画像認証

トラックバック - http://d.hatena.ne.jp/hake/20060924/p1