Ruby Série #4 – Métodos Parte 1


Warning: Missing argument 1 for GeSHi::GeSHi(), called in /home/storage/f/73/ab/bitside1/public_html/edipo_blog/blog/wp-content/plugins/codecolorer/codecolorer-core.php on line 137 and defined in /home/storage/f/73/ab/bitside1/public_html/edipo_blog/blog/wp-content/plugins/deans_code_highlighter/geshi.php on line 432

Warning: Missing argument 2 for GeSHi::GeSHi(), called in /home/storage/f/73/ab/bitside1/public_html/edipo_blog/blog/wp-content/plugins/codecolorer/codecolorer-core.php on line 137 and defined in /home/storage/f/73/ab/bitside1/public_html/edipo_blog/blog/wp-content/plugins/deans_code_highlighter/geshi.php on line 432

Olá pessoal, demorou um pouco mas vamos lá para mais um post da série sobre Ruby, nesta parte 1 vamos ver o básico da criação de métodos e uma “introdução” ao tratamente de execções.

Entõa vamos começar.

A definição de métodos no Ruby é feita com o uso da palavra def juntamento com o nome do método, opcionalmente você pode ter paramêtros nesse método se for o caso eles irão ser postos entre parenteses, por exemplo:

1
2
3
def minha_soma(a, b)
   a + b
end

Agora podemos fazer a chamado desse método usando seu nome, por exemplo, minha_soma(1,40).

Valores de Retorno

A finalização de um método acontece quando ele termina normalmente ou ele é quebrado por um lançamento de uma exeção, vamos usar um exemplo de calculo de fatorial para ilustrar isso, caso for passado como argumento um valor que seja menos que 0 então o método ira lançar uma exceção, caso contrário ele irá retorna a última expresão avaliada, pode notar a falta do return, em Ruby ele não é muito utilizado já que a última expressão a ser avaliada é à que é retornada, mas seu uso não ira quebrar o código.

1
2
3
4
5
def fatorial(n)
   raise "argumento nao valido" if n < 1
      return 1 if n == 1
      n * fatorial(n-1)
end

O Ruby aceita o retorno de n valores em um método, se for o caso a palavra return será necessária.

1
2
3
def  n_retornos(a,b,c)
   return a,b,c
end

Tratamento de Exceções

Você pode usar as palavras-chaves rescue, else e ensure como calusulas de uma declaracao begin

1
2
3
4
5
6
7
8
9
10
11
12
def alguma_coisa(a)
#Corpo de metodo aqui
   rescue
      #codigo da execao aqui
      #Esse codigo eh pulado se a execcao for levantada dentro do corpo do metodo ou se
      # um dos metodos que ele chamar levantar uma execao
   else
      #caso nao tenha execoes no corpo do metodo
      # entao esse bloco eh executado
   ensure
      #isto eh sempre executado
end

Bom pessoal isso foi a primeira parte, algo bem simples mesmo só para introduzir algumas coisas, veremos muito mais nos próximos posts, e também virão alguns apresentando em detalhes o tratamento de exceções.

É isso e até logo.

Leave a Reply