Até agora, todos os exercícios que viste usavam classes.
Por vezes não precisamos do custo de criar um objeto com estado, por isso usamos antes module.
Um módulo é muito semelhante a uma classe (na verdade, Module é o pai de Class na hierarquia de objetos). A principal diferença é que, em vez de usarmos métodos de instância, usamos métodos de classe.
Os métodos de classe começam por self. e são chamados diretamente num módulo.
Por exemplo:
module Speaker
def self.echo(something)
"#{something} ... #{something}"
end
end
Speaker.echo("Hello") #=> "Hello ... Hello"
Há várias formas de escrever ciclos em Ruby, mas como tendemos a usar enumeração em vez de ciclos em geral, o ciclo mais comum é talvez o while:
counter = 0
while counter < 5
counter += 1
end
Também podes usar o seu irmão until:
counter = 0
until counter == 5
counter += 1
end
Neste exercício vais trabalhar com contas poupança. Todos os anos, o saldo de uma conta poupança é atualizado com base na taxa de juro. A taxa de juro que o banco oferece depende da quantidade de dinheiro na conta (o seu saldo):
1000 dólares.1000 dólares e inferior a 5000 dólares.5000 dólares.Tens três tarefas, cada uma delas sobre o saldo e a respetiva taxa de juro.
Implementa o método SavingsAccount.interest_rate para calcular a taxa de juro com base no saldo indicado:
SavingsAccount.interest_rate(200.75)
#=> 0.5
Repara que o valor devolvido é uma instância de Float.
Implementa o método SavingsAccount.annual_balance_update para calcular a atualização anual do saldo, tendo em conta a taxa de juro:
SavingsAccount.annual_balance_update(200.75)
#=> 201.75375
Repara que o valor devolvido é uma instância de Float.
Implementa o método SavingsAccount.years_before_desired_balance para calcular o número mínimo de anos necessários para atingir o saldo pretendido:
SavingsAccount.years_before_desired_balance(200.75, 214.88)
#=> 14
Repara que o valor devolvido é uma instância de Integer.
Inscreve-te no Exercism para aprenderes e dominares Ruby com 21 conceitos121 exercícios, e mentoria humana real, tudo grátis.