Domanda

  

Eventuali duplicati:
   Qual è l'operatore * facendo per questa stringa in Ruby

Probabilmente non v'è risposta per questo altrove, ma io proprio non so come trovarlo ...

Se ho ragione, i mezzi * parametri multipli, se utilizzata in definizione di funzione:

def hero(name, *super_powers)

Ma cosa fa * fare in codice come questo:

Hash[*[[:first_name, 'Shane'], [:last_name, 'Harvie']].flatten] # => {:first_name=>"Shane", :last_name=>"Harvie"}
È stato utile?

Soluzione

lunghezza variabile lista di argomenti, Asterisk Operatore

L'ultimo parametro di un metodo può essere preceduto da un asterisco (*), che è talvolta chiamato l'operatore 'splat'. Ciò indica che più parametri possono essere passati alla funzione. Questi parametri sono raccolti e viene creato un array.

L'operatore asterisco può precedere un argomento Array in una chiamata di metodo. In questo caso l'array sarà ampliato ei valori passati come se fossero separati da una virgola.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top