Sen (iyi bir cevap almak için kod kurulum daha fazla ayrıntı için gereken
ya da benim için hangi bu yineleniyor sorgulamaya anlamaya :) Ne tür değişkenler $1
tarafından başvuruyor? İşte bazı tahminler vardır: Bu örnek değişkenler ise o zaman,
# Same as "self.foo" if $1 is "foo"
self.send($1).description.downcase
: Bu aslında aynı örneğinde bir yöntem ise
bunu aşağıdakileri yöntemi çağırabilirsiniz
# Same as "@foo.description.downcase"
instance_variable_get(:"@#{$1}").description.downcase
bu yerel değişkenler, doğrudan bunu yapamaz ve bir Hash kullanmak için kodunuzu değiştirmeniz gerekir:
objs = {
'foo' => ...,
'key' => Item.new(:name => "Key", :description => "a key")
}
objs['jim'] = ...
case some_str
when /^read (.+)$/
puts "Reading #{$1}:"
puts objs[$1].description.downcase
end
Olası yinelenen _ [Ruby on çalışma zamanında bir değişken olarak bir dize kullanarak] (http://stackoverflow.com/questions/881239/using-a-string-as-a-variable-at-run-time-in-ruby-on-rails)_ or _ [İşlev Adı Olarak Dize Kullanmak] (http: //stackoverflow.com/questions/877882/using-a-string-as-function-name/878174)_. – Phrogz