Sadece bazı Yakut kodunda böyle bir şey gördüm: kullanarakRuby'de eşittir işareti bulunan virgül ne anlama geliyor?
def getis;gets.split.map(&:to_i);end
k,=getis # What is this line doing?
di=Array::new(k){Array::new(k)}
Sadece bazı Yakut kodunda böyle bir şey gördüm: kullanarakRuby'de eşittir işareti bulunan virgül ne anlama geliyor?
def getis;gets.split.map(&:to_i);end
k,=getis # What is this line doing?
di=Array::new(k){Array::new(k)}
Bu dizinin ilk elemanı atar Ruby'nin multiple assignment:
a, = [1, 2, 3]
a #=> 1
Veya:
a, b = [1, 2, 3]
a #=> 1
b #=> 2
Bir *
kullanabilirsiniz kalan öğeleri getirmek için:
a, *b = [1, 2, 3]
a #=> 1
b #=> [2, 3]
Veya:
*a, b = [1, 2, 3]
a #=> [1, 2]
b #=> 3
Bu gibi çalışır. lhs
tek öğeye sahipse ve rhs
birden çok değere sahipse lhs
buna benzer bir değerler dizisi atar. lhs
rhs
daha elemanları varsa
a = 1,2,3 #=> a = [1,2,3]
, daha sonra lhs
aşırı elemanlar nedenle
a, = 1,2,3 #=> a = 1
a,b,c = 1,2 #=> a = 1, b = 2, c = nil
atılır ise. Diğerleri [2,3]
atılmıştır. Diğer seçenekler 1+ ile açıklanmıştır. –