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