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.