Я читаю книгу POODR и использует старый синтаксис для инициализации со значениями по умолчанию. Я хочу реализовать то же самое с новым синтаксисом.ruby initialization with keyword args
class Gear
attr_reader :chainring, :cog, :wheel
def initialize(args)
@chainring = args.fetch(:chainring, 40)
@cog = args.fetch(:cog, 10)
@wheel = args[:wheel]
end
def gear_inches
ratio * diameter
end
def diameter
wheel * diameter
end
end
Gear.new(chainring: 52, cog: 11, wheel: Wheel.new(26,1.5)).gear_inches
Как бы это выглядело с новым ключевым словом args? Это моя догадка ниже, но не уверен, что это будет то же самое для колеса, как показано выше.
class Gear
attr_reader :chainring, :cog, :wheel
def initialize(chainring: 40, cog: 10, wheel:) #is this good here for wheel?
@chainring = chainring
@cog = cog
@wheel = wheel #is this good here for wheel?
end
......
end
'wheel: nil' будет эквивалентно – Stefan