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.

Ferramentas pessoais