Quali sono i vantaggi e gli svantaggi dell'utilizzo di Struct
rispetto alla definizione di un metodo initialize
?Ruby: Struct vs Initialize
Posso già vedere che si tratta di meno codice e non aumentare quando manca un argomento:
Utilizzando struct:
class Fruit < Struct.new(:name)
end
> Fruit.new.name
=> nil
> Fruit.new('apple').name
=> "apple"
Utilizzando inizializzare:
class Fruit
attr_accessor :name
def initialize(name)
@name = name
end
end
> Fruit.new.name
ArgumentError: wrong number of arguments (0 for 1)
> Fruit.new('apple').name
=> "apple"
Quali sono i tuoi pensieri? Stai usando Struct
frequentemente nei tuoi progetti?
Qual è il tuo caso d'uso? 'Struct' è ottimo per le cose che non hanno molta logica aggiuntiva. – tadman
Voglio solo i tuoi pensieri su questo quando hai bisogno di definire le classi con gli inizializzatori. Dal momento che l'utilizzo di 'Struct' sembra essere" più sexy ", mi piacerebbe conoscere gli elenchi a discesa, se presenti. –
Se si dispone di un caso d'uso specifico, questa è una domanda sull'argomento. Se vuoi solo generare una discussione sui pro e contro delle varie implementazioni, non è una buona idea per il formato Q & A. –