From: matz@... (Yukihiro Matsumoto) Date: 1998-06-16T10:45:19+09:00 Subject: [ruby-list:8358] Re: question about arguments まつもと ゆきひろです In message "[ruby-list:8353] question about arguments" on 98/06/16, Koichi Shigematsu writes: |しげまつ@はじめまして です はじめまして. |さて、classを定義して引数を使いたいのですが、うまくわたりません。 すこしプログラムの意味を解説しましょう. |==== |require "conf" conf.rbをロードします.requireは同じファイルを2度はロード しません |test1=Conf.new('a','b') Confクラスのオブジェクトを生成します 'a', 'b'はオブジェクトの初期化用引数です これは初期化メソッドinitializeの引数となります デフォルトのinitializeは引数を無視します |test1.echo test1(Confクラスのオブジェクト)のメソッドechoを呼び出します echoに引数は与えられていません ですから,newの引数は無視され,echoには引数が渡されていませ んから,'a','b'はプリントされません. しげまつさんがなにをお望みなのかよくわからないのですが,echo に引数を渡したいなら,test.rbで test1.echo('a', 'b') とするべきでしょうし,逆にechoは生成時の引数を出力したいので したら,conf.rbのクラス定義を class Conf def initialize(*args) @args = args # インスタンス変数に保存 end def echo for i in @args # インスタンス変数から取り出す print i end print "--\n" print *args print "\n" end end というようにするべきでしょう. まつもと ゆきひろ /:|)