2012-04-03 7 views
0

私のコードの次の行に変数の値としてコンソールに表示された内容を割り当てたいと思います。 これは$ stdoutで可能ですか?Rubyでコンソール出力を値として割り当てる方法は?

たとえば、私は、コンソール上で1つのアンパックされた配列値を出力しています。 今このコードを次の行の変数の値として使用したいと思います。 たとえばputs "\nPageSize:\n#{c1}\n"は単一要素配列である7117を出力します。次に、この印刷された値を、次のコード行の変数xに整数として代入して、このputs "\nPageSize:\n#{c1}\n"の下に置きたいとします。あなたは

x = 0 

整数型の最初のintilize変数...........このように割り当てることができます

+0

Rubyの基本的な紹介を読み始めるべきです。 –

答えて

0

はその後

x = c1 

    or 

    x = arr[0] 

それともなどとして割り当てます欲しい.........

しかし、何も返さないので、印刷された値をいくつかの変数に割り当てることはできません。あなたよりも

いくつかの変数を使用し、その値を別の変数に割り当てます。

0

IRBでは、最後の式の結果を得るために、特別なアンダースコア変数を使用することができます。

> 2 + 2 
> x = _ 
> 4 

しかし、「プット」はnilを返す以来

が、それは動作しません。あなたがputを避けると、それは動作します。

0

あなたは通常、stdoutに書き込んだ内容を読み込むことはできません。あなたはこれを達成するためにモンキーパッチputsまたはIOでしたが、これはあなたがしたいことではないと思います。

あなたが値を印刷できる場合は、あなたにもそれを変数に割り当てることができますが(実際にはそれがすでにc1[0]に保存されている):

puts "\nPageSize:\n#{c1}\n" 
x = c1[0] # or c1.first 

またはより良い

x = c1[0] # or c1.first 
puts "\nPageSize:\n#{x}\n" 

#{c1}補間された文字列の一部はのto_sを呼び出してStringに変換し、それを挿入します。Stringしたがって、[7117]"7117"に変換されます。

関連する問題