Ruby - Métodos

Os métodos Ruby são muito semelhantes às funções em qualquer outra linguagem de programação. Os métodos Ruby são usados ​​para agrupar uma ou mais instruções repetíveis em uma única unidade.

Os nomes dos métodos devem começar com uma letra minúscula. Se você começar um nome de método com uma letra maiúscula, Ruby pode pensar que é uma constante e, portanto, pode analisar a chamada incorretamente.

Os métodos devem ser definidos antes de chamá-los, caso contrário, o Ruby levantará uma exceção para a chamada de método indefinido.

Sintaxe

def method_name [( [arg [= default]]...[, * arg [, &expr ]])]
   expr..
end

Portanto, você pode definir um método simples da seguinte maneira -

def method_name 
   expr..
end

Você pode representar um método que aceita parâmetros como este -

def method_name (var1, var2)
   expr..
end

Você pode definir valores padrão para os parâmetros, que serão usados ​​se o método for chamado sem passar os parâmetros necessários -

def method_name (var1 = value1, var2 = value2)
   expr..
end

Sempre que você chama o método simples, você escreve apenas o nome do método da seguinte forma -

method_name

No entanto, ao chamar um método com parâmetros, você escreve o nome do método junto com os parâmetros, como -

method_name 25, 30

A desvantagem mais importante de usar métodos com parâmetros é que você precisa se lembrar do número de parâmetros sempre que chamar tais métodos. Por exemplo, se um método aceita três parâmetros e você passa apenas dois, Ruby exibe um erro.

Exemplo

#!/usr/bin/ruby

def test(a1 = "Ruby", a2 = "Perl")
   puts "The programming language is #{a1}"
   puts "The programming language is #{a2}"
end
test "C", "C++"
test

Isso produzirá o seguinte resultado -

The programming language is C
The programming language is C++
The programming language is Ruby
The programming language is Perl

Retornar valores de métodos

Cada método em Ruby retorna um valor por padrão. Este valor retornado será o valor da última instrução. Por exemplo -

def test
   i = 100
   j = 10
   k = 0
end

Este método, quando chamado, retornará a última variável declarada k .

Declaração de retorno Ruby

A instrução return em ruby ​​é usada para retornar um ou mais valores de um método Ruby.

Sintaxe

return [expr[`,' expr...]]

Se mais de duas expressões forem fornecidas, a matriz contendo esses valores será o valor de retorno. Se nenhuma expressão for fornecida, nil será o valor de retorno.

Exemplo

return

OR

return 12

OR

return 1,2,3

Dê uma olhada neste exemplo -

#!/usr/bin/ruby

def test
   i = 100
   j = 200
   k = 300
return i, j, k
end
var = test
puts var

Isso produzirá o seguinte resultado -

100
200
300

Número variável de parâmetros

Suponha que você declare um método que usa dois parâmetros, sempre que você chamar esse método, você precisará passar dois parâmetros junto com ele.

No entanto, Ruby permite que você declare métodos que funcionam com um número variável de parâmetros. Vamos examinar uma amostra disso -

#!/usr/bin/ruby

def sample (*test)
   puts "The number of parameters is #{test.length}"
   for i in 0...test.length
      puts "The parameters are #{test[i]}"
   end
end
sample "Zara", "6", "F"
sample "Mac", "36", "M", "MCA"

Neste código, você declarou um exemplo de método que aceita um teste de parâmetro. No entanto, este parâmetro é um parâmetro variável. Isso significa que este parâmetro pode receber qualquer número de variáveis. Portanto, o código acima produzirá o seguinte resultado -

The number of parameters is 3
The parameters are Zara
The parameters are 6
The parameters are F
The number of parameters is 4
The parameters are Mac
The parameters are 36
The parameters are M
The parameters are MCA

Métodos de aula

Quando um método é definido fora da definição da classe, o método é marcado como privado por padrão. Por outro lado, os métodos definidos na definição da classe são marcados como públicos por padrão. A visibilidade padrão e a marca privada dos métodos podem ser alteradas por público ou privado do Módulo.

Sempre que você deseja acessar um método de uma classe, primeiro você precisa instanciar a classe. Então, usando o objeto, você pode acessar qualquer membro da classe.

Ruby oferece uma maneira de acessar um método sem instanciar uma classe. Vamos ver como um método de classe é declarado e acessado -

class Accounts
   def reading_charge
   end
   def Accounts.return_date
   end
end

Veja como o método return_date é declarado. É declarado com o nome da classe seguido por um ponto, que é seguido pelo nome do método. Você pode acessar este método de classe diretamente da seguinte maneira -

Accounts.return_date

Para acessar este método, não é necessário criar objetos da classe Contas.

Declaração de alias Ruby

Isso fornece alias para métodos ou variáveis ​​globais. Os aliases não podem ser definidos no corpo do método. O alias do método mantém a definição atual do método, mesmo quando os métodos são substituídos.

É proibido criar apelidos para as variáveis ​​globais numeradas ($ 1, $ 2, ...). Substituir as variáveis ​​globais integradas pode causar problemas sérios.

Sintaxe

alias method-name method-name
alias global-variable-name global-variable-name

Exemplo

alias foo bar
alias $MATCH $&

Aqui nós definimos foo alias para bar, e $ MATCH é um alias para $ &

Declaração Ruby undef

Isso cancela a definição do método. Um undef não pode aparecer no corpo do método.

Usando undef e alias , a interface da classe pode ser modificada independentemente da superclasse, mas observe que pode haver programas interrompidos pela chamada de método interno para self.

Sintaxe

undef method-name

Exemplo

Para cancelar a definição de um método chamado bar, faça o seguinte -

undef bar