SORU
27 Mayıs 2009, ÇARŞAMBA


(Tekli) * operatör bu Ruby kod ne yapar?

Ruby kod verildi

line = "first_name=mickey;last_name=mouse;country=usa" 
record = Hash[*line.split(/=|;/)] 

Ben ikinci satırda ayrı * operatöründen - ne yapıyor ve nerede bu belgeler? anlamak (tahmin edebileceğiniz gibi, bu dava için arama zor olduğunu gösteriyor...)

CEVAP
27 Mayıs 2009, ÇARŞAMBA


*splatoperatör.

Bu durumda bağımsız değişken listesinin içinde, Array Hash.[] yöntem için bağımsız değişken listesi genişler. Daha doğrusu, Rubyto_ary/to_aveya to_a 1.9.) yanıt herhangi bir nesneyi büyütür

Göstermek için, aşağıdaki iki ifade eşit

method arg1, arg2, arg3
method *[arg1, arg2, arg3]

Ayrıca farklı bir bağlamda, yöntem tanımı içinde kalan tüm yöntem bağımsız değişkenleri yakalamak için kullanılabilir. Bu durumda, genişletmek değil, ama birleştirin:

def method2(*args)  # args will hold Array of all arguments
end

Some more detailed information here.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Paulo Bautista

    Paulo Bautis

    21 Aralık 2008
  • TheRightTire

    TheRightTire

    14 EKİM 2009
  • UKF

    UKF

    2 Aralık 2009