Jakie są zalety i wady stosowania Struct
w porównaniu do definiowania metody initialize
?Ruby: Struct vs Initialize
Już widzę, że obejmuje mniej kod i nie podnosząc gdy brakuje argumentu:
Korzystanie struct:
class Fruit < Struct.new(:name)
end
> Fruit.new.name
=> nil
> Fruit.new('apple').name
=> "apple"
Korzystanie zainicjować:
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"
Jakie są twoje myśli? Czy często używasz Struct
w swoich projektach?
Jaki jest twój przypadek użycia? "Struct" świetnie nadaje się do rzeczy, które nie mają dużo dodatkowej logiki. – tadman
Po prostu chcę o tym myśleć, kiedy trzeba zdefiniować klasy za pomocą inicjalizatorów. Ponieważ użycie 'Struct' wydaje się być" bardziej sexy ", chciałbym poznać listę rozwijaną, jeśli taka istnieje. –
Jeśli masz konkretny przypadek użycia, jest to pytanie na temat. Jeśli chcesz tylko stworzyć dyskusję na temat zalet i wad różnych implementacji, to nie pasuje to do formatu pytań i odpowiedzi. –