Capítulo 03
De Guru-SP
Vamos modificar nosso programa pra receber um parâmetro. Perceba que não definimos o tipo do parâmetro, apenas o parâmetro:
def imprime_tudo(string_a_imprimir)
#imprime tudo em maiúsculos
puts string_a_imprimir.upcase
#imprime tudo em minúsculos
puts string_a_imprimir.downcase
#imprime capitalizado
puts string_a_imprimir.capitalize
#imprime de trás pra frente
puts string_a_imprimir.reverse
end
imprime_tudo("Marcelo Castellani")
E o resultado da execução:
$ ruby 02.rb MARCELO CASTELLANI marcelo castellani Marcelo castellani inalletsaC olecraM
Você pode perguntar, “mas e se eu passar um tipo inválido para o método?”. Bem, vamos ver o que acontece quando passamos um número:
imprime_tudo(4)
O restante do código permanece inalterado. O resultado da execução:
$ ruby 02.rb 02.rb:4:in `imprime_tudo': undefined method `upcase' for 4:Fixnum (NoMethodError) from 02.rb:15
Veja o erro que o Ruby retornou: não existe um método upcase para a classe FixNum. Vamos então resolver este problema mudando um pouco nosso código:
def imprime_tudo(string_a_imprimir)
# Verifico se é da classe String
if string_a_imprimir.class == String
#imprime tudo em maiúsculos
puts string_a_imprimir.upcase
#imprime tudo em minúsculos
puts string_a_imprimir.downcase
#imprime capitalizado
puts string_a_imprimir.capitalize
#imprime de trás pra frente
puts string_a_imprimir.reverse
else
puts string_a_imprimir
end
end
imprime_tudo(4)
imprime_tudo("Marcelo Castellani")
Você também pode usar um valor padrão para um parâmetro de um método:
def imprime_tudo(string_a_imprimir = “Manoel”)
#imprime tudo em maiúsculos
puts string_a_imprimir.upcase
#imprime tudo em minúsculos
puts string_a_imprimir.downcase
#imprime capitalizado
puts string_a_imprimir.capitalize
#imprime de trás pra frente
puts string_a_imprimir.reverse
end
imprime_tudo("Marcelo Castellani")
imprime_tudo
Voltar para o tutorial de Ruby, ou ir para o Capítulo 04.
