Dinamik sürekli atama
class MyClass
def mymethod
MYCONSTANT = "blah"
end
end
bana hata veriyor:
SyntaxError: dinamik sürekli atama hatası
Neden bu dinamik sürekli olarak kabul edilir? Sadece bir dize atıyorum.
CEVAP
Senin sorunun her zaman sürekli yeni bir değer atama yöntem ve çalıştırın. Bu sabit olmayan sürekli yapar; olsa bile izin verilmeziçindekilerdize aynı (şimdilik) her neyse, gerçek bir dizenesneher zaman bu yöntemi çağrılır farklı kendisidir. Örneğin:
def foo
p "bar".object_id
end
foo #=> 15779172
foo #=> 15779112
Belki de sizin kullanım örneği—neden açıkladın yöntem—biz daha iyi bir uygulama ile size yardımcı olabilecek bir sabit değeri değiştirmek istiyorum.
Belki de oldukça sınıfı örnek bir değişken var mı?
class MyClass
class << self
attr_accessor :my_constant
end
def my_method
self.class.my_constant = "blah"
end
end
p MyClass.my_constant #=> nil
MyClass.new.my_method
p MyClass.my_constant #=> "blah"
Eğergerçektendeğiştirmek mi istiyorsun değeri sabit bir yöntem, ve sabit bir Dize veya bir Dizi, 'hile' ve kullanın #replace
yöntem için neden bu nesne için yeni bir değer olmadan aslında değişen nesne:
class MyClass
BAR = "blah"
def cheat( new_bar )
BAR.replace new_bar
end
end
p MyClass::BAR #=> "blah"
MyClass.new.cheat "whee"
p MyClass::BAR #=> "whee"
Atama Docker noktalarına li > ...
C VB.Net eşdeğer '#; dinamik'...
Razor View Engine : deyim ağacı dinami...
.net localhost sürekli/anket arterySig...
Nasıl Javascript dizisi(JSON formatınd...