19 Temmuz 2011, Salı
Ruby Metaprogramming: dinamik örnek değişken isimleri
Hadi şu esrar var ki:
{ :foo => 'bar', :baz => 'qux' }
Nasıl dinamik olarak anahtarları ve değerleri bir nesnenin örnek değişkenleri olmak için ayarlanmış olabilir
class Example
def initialize( hash )
... magic happens here...
end
end
... bu yüzden bu model içinde aşağıdaki ile son buldu
@foo = 'bar'
@baz = 'qux'
?
CEVAP
19 Temmuz 2011, Salı
Aradığın yöntemi instance_variable_set
. Yani:
hash.each { |name, value| instance_variable_set(name, value) }
Ya da daha kısaca
hash.each &method(:instance_variable_set)
Eğer örnek değişken isimleri eksik "@ onları eklemek gerekir, daha fazla gibi olur: "OP örnekte olduğu gibi),
hash.each { |name, value| instance_variable_set("@#{name}", value) }
Bunu Paylaş:
Örnek değişken Ruby sınıfa karşı sınıf...
JavaScript dinamik değişken isimleri k...
PHP dinamik değişken isimleri...
Bir değişken belirleme aralığı içinde....
Dahil olmadan Ruby modülü üzerinde bir...