Onun adı verilen bir örnek değişkeni değerini almak
Genel olarak, nasıl bir dize içinde var olan bir nesne için bir referans alabilir miyim?
Daha spesifik olarak, parametre isim listesi (onlara bakın edemem yani üye değişken yapılı dinamik olarak doğrudan) var.
Her parametre de from_s
bir yöntem olan bir nesnedir.
Aşağıdaki (tabii ki işe yaramıyor...) gibi bir şey yapmak istiyorum:
define_method(:from_s) do | arg |
@ordered_parameter_names.each do | param |
instance_eval "field_ref = @#{param}"
field_ref.from_s(param)
end
end
CEVAP
Bunu başarmak için en deyimsel bir şekilde
some_object.instance_variable_get("@#{name}")
kullanmaya gerek yoktur ya da intern
; Ruby gayet iyi idare edecektir. Eğer başka bir nesnenin içine kendine ulaşan ve ıvar çekerek bulursanız, ancak, saklama ayrılmış oldukça iyi bir şans var.
Eğer açıkça bir ıvar erişmek istiyorsanız, bunu yapmak için doğru şey onu bir erişimci. Aşağıdakileri göz önünde bulundurun:
class Computer
def new(cpus)
@cpus = cpus
end
end
Eğer Bilgisayar yaptı, bu durumda,.yeni instance_variable_get
@cpus
at almak için kullanmak zorunda. Ama eğer bunu yapıyorsanız, muhtemelen @cpus
ortak olmak için. Yapmanız gereken şey şudur:
class Computer
attr_reader :cpus
end
Şimdi Computer.new(4).cpus
yapabilirsiniz.
Yeniden unutmayınherhangi birsınıf mevcut ve okuyucuya özel bir ıvar olun. Bir erişimci sadece bir yöntem olduğundan, Computer.new(4).send(var_that_evaluates_to_cpus)
yapabilirsiniz
Nasıl seçili radyo düğmesi değerini al...
Javascript ile Radio Buton Değerini al...
Nasıl artış olmadan oracle bir dizi ge...
Π değerini almak için en hızlı yolu ne...
Linux ortam değişkeni adları izin veri...