SORU
9 Aralık 2009, ÇARŞAMBA


Ruby değeri başvurusu ya da sınavı geçmek.

@user.update_languages(params[:language][:language1], 
                       params[:language][:language2], 
                       params[:language][:language3])
lang_errors = @user.errors
logger.debug "--------------------LANG_ERRORS----------101-------------" 
                  lang_errors.full_messages.inspect

if params[:user]
  @user.state = params[:user][:state]
  success = success & @user.save
end
logger.debug "--------------------LANG_ERRORS-------------102----------" 
                  lang_errors.full_messages.inspect

if lang_errors.full_messages.empty?

2* *nesne update_lanugages yöntemi lang_errors değişken hatalar ekler. ben bir tasarruf @user nesne üzerinde gerçekleştirmek için başlangıçta lang_errors değişken saklanan hataları kaybettim.

Yapmaya çalışıyorum ama bir hack daha çalışmak için görünmüyor). Değişken değerleri yıkanmış olduğunu anlamak istiyorum. Değeri yıkanmış olmadan bu değişken içinde tutulabilir bilmek istiyorum referans olarak geçmek anlıyorum.

CEVAP
9 Aralık 2009, ÇARŞAMBA


, Ruby is strictly pass-by-value geleneksel terminoloji. Ama burada sorduğun şey bu değil aslında.

Ruby, referans olmayan saf bir değeri herhangi bir kavram yok, kesinlikle bir yöntem için bir geçiş olamaz. Değişkenler her zaman nesnelere başvurular. Altından dışarı değiştirmek olmaz bir nesne elde etmek için, ya da, böylece kimse için bir başvuru içeren bir nesne vererek geçti sen nesne dup klon gerekir. (Hatta bu kurşun geçirmez değil ama standart klonlama yöntemleri de klon örnek değişkenleri hala orijinallerle aynı nesneleri işaret çok sığ bir kopyasını yapmak. Eğer nesneleri bugün ivan'ın tarafından başvurulan mutasyona varsa, o hala aynı nesneleri başvuran yana suret olarak gösterilir.)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Autodesk 3ds Max Learning Channel

    Autodesk 3ds

    23 HAZİRAN 2010
  • уσ ρℓz sυв ιℓℓ sυв вαcқ

    уσ ρℓz

    14 EKİM 2010
  • MrRandomSong

    MrRandomSong

    29 Kasım 2009