ルビー:カウンタは、カウントおよびインクリメント

StackOverflow https://stackoverflow.com/questions/2641778

  •  27-09-2019
  •  | 
  •  

質問

あなたは私の以前の質問を見ている場合は、

、あなたはすでにそれがルビーに来るとき、私は大きなnubyだ知っていると思います。だから、私はCプログラミングのために意図され、このウェブサイトを発見したが、私は1つがCで行うことができます何でも、(あまりにも多く読みやすい)Rubyで可能でなければならないと思いました。

の挑戦は数字の束をプリントアウトすることです。私は(.uptoこの気の利いた方法を発見した)、私はブロックを使用(そして実際にその目的を理解すること)。しかし、IRBに、私はいくつかの予期しない動作を得ています。

class MyCounter
    def run 
    1.upto(10) { |x| print x.to_s + " " } 
    end
end


irb(main):033:0> q = MyCounter.new
=> #<MyCounter:0x5dca0>
irb(main):034:0> q.run
1 2 3 4 5 6 7 8 9 10 => 1
S万一私がそうでなければ、この操作を行います。

私は=> 1が来る見当がつかない?私はこの結果を持って期待しています:

1 2 3 4 5 6 7 8 9 10

ご回答、コメントやフィードバックをありがとう!

役に立ちましたか?

解決

  

の私は=> 1

Doが心配しないで。デフォルトirbによってメソッドの実行の戻り値を出力します。

あなたが(例えばCのように)return文を書いていない場合でも、

Rubyは最後に計算文の値を返します。

この場合、1

ました すべての

インスタンス試みについては、

class WhereIsTheReturn
    def uh?
        14 * 3 # no return keyword
    end
end


whereIsIt = WhereIsTheReturn.new
hereItIs = whereIsIt.uh?
print "Here it is : #{hereItIs}\n"

他のヒント

"=> 1" IRBではなく、あなたのコードからです。あなたはIRBに入力するすべてのステートメントの後、それは「=>」プロンプトます。

の後に、そのステートメントの結果を印刷します

あなたの関数内で改行を印刷してみます:

def run 
  1.upto(10) { |x| print x.to_s + " " }
  print "\n"
end

そして、それは次のようになります:

irb> q.run
1 2 3 4 5 6 7 8 9 10
  => nil
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top