2012-04-03 7 views
0

Ich möchte Inhalte auf der Konsole als Wert in der nächsten Zeile in meinem Code Variable zuweisen. Ist das mit $ stdout möglich?Wie wird die Konsolenausgabe als Wert einer Variablen in Ruby zugewiesen?

sagen wir zum Beispiel Ich drucke einen entpackten Array-Wert auf der Konsole. Jetzt möchte ich diesen gedruckten Wert als Wert der Variablen in der nächsten Zeile meines Codes verwenden. zum Beispiel puts "\nPageSize:\n#{c1}\n" druckt 7117, das ein einzelnes Element-Array ist. Nun möchte ich diesen gedruckten Wert als eine ganze Zahl auf eine Variable x in der nächsten Zeile des Codes unter diesem zuweisen.

+0

Sie sollten wirklich anfangen, eine grundlegende Einführung in Ruby zu lesen. –

Antwort

0

Sie können wie folgt vergeben ...........

intilize variable erste vom Typ integer

x = 0 

dann zuweisen

x = c1 

    or 

    x = arr[0] 

Oder wie Sie will .........

Aber puts return nichts, so können Sie nicht gedruckt Wert einer Variablen zuweisen als Sie

Verwenden Sie eine Variable und weisen Sie ihren Wert einer anderen Variablen zu.

0

In IRB können Sie ein speziellen Strich Variablen über das Ergebnis des letzten Ausdrucks zu erhalten:

> 2 + 2 
> x = _ 
> 4 

Aber da ‚puts‘ gibt nil zurück, wird es nicht funktionieren. Wenn Sie Puts vermeiden, wird es funktionieren.

0

Normalerweise können Sie nicht lesen, was Sie auf stdout geschrieben haben. Sie könnte Affe-Patch puts oder IO, um das zu erreichen - aber ich denke, das ist nicht das, was Sie tun möchten.

Wenn Sie den Wert drucken können, können Sie auch zuweisen es zu einer Variablen (in der Tat ist es bereits in c1[0] gespeichert ist):

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

oder besser

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

Was die #{c1} Teil in der interpolierten Zeichenkette heißt c1 's to_s, um es in eine String umzuwandeln und diese String einzufügen. So konvertiert es die [7117] zu "7117".

Verwandte Themen