SORU
17 AĞUSTOS 2013, CUMARTESİ


(Splat) çift * bir operatör ne iş yapar

Bir işlevi, böyle ilan gördünüz mü?

def foo a, **b
  ...
end

* tek bir uyarısı operatör olduğunu anlıyorum. ** ne anlama geliyor?

CEVAP
17 AĞUSTOS 2013, CUMARTESİ


Ruby 2.0 anahtar kelime argümanları tanıttı, ve ** anahtar kelime argümanlar için * gibi ama iş görür. Anahtar / değer çiftleri ile bir Karma döndürür.

Bu kod için:

def foo(a, *b, **c)
  [a, b, c]
end

Burada bir gösteri:

> foo 10
=> [10, [], {}]
> foo 10, 20, 30
=> [10, [20, 30], {}]
> foo 10, 20, 30, d: 40, e: 50
=> [10, [20, 30], {:d=>40, :e=>50}]
> foo 10, d: 40, e: 50
=> [10, [], {:d=>40, :e=>50}]

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BgirlNilaya

    BgirlNilaya

    29 EKİM 2008
  • Lamarr Wilson

    Lamarr Wilso

    27 Aralık 2008
  • Majestic Casual

    Majestic Cas

    28 NİSAN 2012