Soru Ruby diziyi fonksiyon argümanlarına dönüştürür


Dizim olduğunu söyle. Diziyi bir işleve geçirmek istiyorum. Bununla birlikte, işlev iki argüman bekler. Sinek üzerinde diziyi 2 argümana dönüştürmenin bir yolu var mı? Örneğin:

a = [0,1,2,3,4]
b = [2,3]
a.slice(b)

Ruby'de bir hata olur. Giriş yapmam lazım a.slice(b[0],b[1]) Daha zarif bir şey arıyorum a.slice(foo.bar(b)) Teşekkürler.


76
2018-02-19 13:40


Menşei


Aynı soru: Bir dizinin elemanlarını argüman olarak bir yöntem çağrısına gönderme - totymedli


Cevaplar:


Bir Array bir argüman listesine * (veya "uyarısı") operatörü:

a = [0, 1, 2, 3, 4] # => [0, 1, 2, 3, 4]
b = [2, 3] # => [2, 3]
a.slice(*b) # => [2, 3, 4]

Referans:


67
2018-02-19 13:46



Evet, bu mükemmel. :) - Arup Rakshit


Bunu kullan

a.slice(*b)

Splat operatörü denir


89
2018-02-19 13:42