-1

私は簡単なプログラムを実行しようとしています:

class Pras
  def samleMethod
    a = 12
    p "a"
  end
end

エラーはありませんが、出力が表示されないのはなぜですか?

編集

class Pras
  def samleMethod
    a = 12
    p a
  end
end
4

3 に答える 3

1

変数ではなく文字列「a」を出力しています。代わりにこれを使用してください:p a

編集:

Rostyslavが述べたように、あなたは何も実行していません:試してみてくださいPras.new.samleMethod

于 2012-08-12T12:00:08.627 に答える
1

私にとって完璧に機能します:

ここでクラスを定義します。

irb(main):014:0> class Pras
irb(main):015:1> def samleMethod
irb(main):016:2> a = 12
irb(main):017:2> p a
irb(main):018:2> end
irb(main):019:1> end
=> nil

そのクラスのオブジェクトを作成してインスタンス化し、実際に印刷してインスタンスメソッドを呼び出す方法は次のとおりです。

irb(main):020:0> Pras.new.samleMethod
12
=> 12
于 2012-08-12T12:06:14.673 に答える
1
class Pras
  def samleMethod
    a = 12
    p a
  end
end

これでは、sampleMethodという名前のパブリックメソッドを使用してPrasという名前のクラスを作成しています。

私はあなたがOOPについてある程度の知識を持っていると思います

したがって、メソッドにアクセスするときはいつでも、それにアクセスするためのクラスのインスタンスを作成する必要があります。

p =  Pras.new

これで、インスタンスを使用してメソッドにアクセスできます

p.sampleMethod

または両方を1行で

  Pras.new.sampleMethod

このタットをよく見てみることをお勧めします。http://www.tutorialspoint.com/ruby/ruby_quick_guide.htm

メソッドは、呼び出されない限り実行されません。

ここでこのコードをオンラインで試してください


于 2012-08-12T12:33:33.803 に答える