LINUX.ORG.RU

Помощь с Ruby


0

0

Многоуважаемый all, как в руби проделать такое: допустим есть переменая

temp=["rule", "dude"]
есть другие переменнын
temp_rule="bla-bla"
temp_dude="blo-blo"

нужно сделать из этого что-то типо:

temp.each {|x| puts temp_#{x} }
и чтобы приэтом печаталось содержимое двух переменных temp_dude и temp_rule

Ответ на: комментарий от SANTA_CLAUS

Это не хреново, это хорошо.

Я, конечно, тебя обманул. Один способ есть:

local_variables.find(regexp) {|var| do_smth(var) }

Но все переменные должны быть в области видимости одного и того же метода. Поэтому лучше работай с типами через ObjectSpace.each_object()

LamerOk ★★★★★
()
Ответ на: комментарий от yltsrc

Эээ.. даже не понимаю причем здесь метод [], в общем нет, не работает.

SANTA_CLAUS ★★
() автор топика
Ответ на: комментарий от Deleted

И вообще:

temp = {}
temp[:rule] = "bla-bla"
temp[:dude] = "blo-blo"

temp.each_pair {|key, value| puts value}

Ну или просто each_value.

Deleted
()
Ответ на: комментарий от SANTA_CLAUS

Все работает:

temp.each {|x| puts eval «temp_#{x}» }

bla-bla
blo-blo
=> [«rule», «dude»]

Но тебе не нужно так делать. Если уж очень хочется дурацких хаков и перлизмов, используй instance_variable_get для переменной конкретного объекта. Хотя так тоже делать не нужно.

Это уже не первая такая тема от тебя. Если и дальше будешь постить подобные вопросы и не постигнешь Ruby Way, я достану свою катану и навещу твое жилище.

anonymous
()
Ответ на: комментарий от impfp

>eval=evil :)

дошло до eval'а - бей по e*al'у.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.