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

  • Creavite

    Creavite

    8 Mart 2009
  • jkimisyellow...ish

    jkimisyellow

    8 Temmuz 2009
  • TechBalance

    TechBalance

    12 HAZİRAN 2011