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

  • MADFINGER Games a.s.

    MADFINGER Ga

    21 NİSAN 2009
  • MuscleProdigyTV

    MuscleProdig

    8 Ocak 2011
  • WoodysGamertag

    WoodysGamert

    17 Aralık 2009