2012-04-03 2 views
0

Я хочу назначить контент, напечатанный на консоли, как значение переменной в следующей строке моего кода. Возможно ли это с помощью $ stdout?Как назначить вывод консоли как значение некоторой переменной в Ruby?

скажем, например, я печатаю одно значение распакованного массива на консоли. Теперь я хочу использовать это напечатанное значение в качестве значения переменной, следующего в моей строке. например puts "\nPageSize:\n#{c1}\n" печатает 7117, который представляет собой массив из одного элемента. Теперь я хочу назначить это печатное значение как целое число для некоторой переменной x в следующей строке кода ниже этого puts "\nPageSize:\n#{c1}\n".

+0

Вы должны действительно начать читать базовое введение в Ruby. –

ответ

0

Вы можете назначить, как это ...........

intilize переменная первого типа целого

x = 0 

затем назначить в качестве

x = c1 

    or 

    x = arr[0] 

Или, как вы хочет .........

Но не возвращает ничего, поэтому вы не можете назначить печатное значение некоторой переменной. чем вы

используйте некоторую переменную и присвойте ее значение другой переменной.

0

В IRB вы можете использовать специальное переменное подчеркивание, чтобы получить результат последнего выражения:

> 2 + 2 
> x = _ 
> 4 

Но поскольку возвращает «ставит» NIL, он не будет работать. Если вы избегаете ставит, то это сработает.

0

Обычно вы не можете прочитать то, что вы написали в стандартный вывод. Вы могли monkey-patch 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} часть в интерполированной строке вызывает c1to_s, чтобы преобразовать ее в String и вставить ее String. Поэтому он преобразует [7117] в "7117".

Смежные вопросы