Visitante!
Faça seu Login ou Registre-se!

Promoções na Steam

Galeria de Jogos

[Ruby] Aula 10 - Method Overload (Sobrecarga de Métodos) 0 Respostas | 685 Visualizações

0 Membros e 1 Visitante estão vendo este tópico.

Raizen

  • *
  • Mensagens: 2480 Ouro: 1863

    Vencedor CRM Awards - Melhor Scripter Vencedores das edições do Concurso Projeto Rickas!

    • Ver perfil
    • E-mail
Índice das aulas básicas
Índice das aulas avançadas
Índice das aulas de algoritmos
Method Overload
Conhecimento necessário : médio
Introdução

   Method Overload, seria a utilização de um mesmo nome de um método(ou função dependendo da linguagem), para diferentes blocos de código, é amplamente usado em vários programas por reduzir o número de métodos, e facilitar na hora de utilizar aquele método.
Basicamente eu tenho um mesmo método que permite que tenha argumentos diferentes em cada um deles.
Exemplo:
Quero um método tamanho, para indicar o número de caracteres, seja em uma string, um integer ou um float, e na programação eu fizesse o seguinte.

Código: [Selecionar]
tamanho(34132)

Esse código deve retornar 5, e se eu chamar o mesmo método
Código: [Selecionar]
tamanho("um texto")
Esse deve retornar 8, o tamanho da string.

Basicamente a Sobrecarga é ter 2 métodos com o nome tamanho, e mesmo que o número de entradas e o tipo de entrada seja diferente, ele aceitar do mesmo modo.


Outro exemplo de sobrecarga é a quantidade de argumentos,
Exemplo:
Quero que um método data tenha argumentos que sejam o dia, ou o dia e o mês, ou o dia, o mês e o ano.
Logo:
Código: [Selecionar]
data(2) #retorna "dia 2"
data(2, 3) #retorna "dia 2 de março"
data(2, 3, 2010) #retorna "dia 2 de março de 2010"



No Ruby

   Adivinhem jovens :), não há sobrecarga de métodos no Ruby, Ruby é uma Linguagem de programação dinâmica(Dynamic Typed Language), e
como sabem, não há declaram explicita do tipo de váriavel ao ser declarado, e com isso o primeiro exemplo dado sobre o tipo de váriavel já falharia na verificação, já que ele não faria distinção entre por exemplo uma string de um número.
Por isso o Ruby dispõe de outros modos para que seja possível simular a Sobrecarga de métodos.

Multiplos argumentos no Ruby

   Como dito logo acima, o Ruby dispõe de modos para que seja possível recriar a sobrecarga, uma delas é que a linguagem permite que um mesmo método tenha diferentes quantidades de variáveis, basta declara-los no próprio argumento.
   
Exemplo:
Código: [Selecionar]
def um(x, y = 2, z = 4)
return (x + y + z)
end
um(2) # O valor será 8

um(2, 1) # O valor será 7

um(2, 1, 0) # O valor será 3

Basicamente, se for declarado nos argumentos e não tiver no momento que utilizar o método, o Ruby automaticamente declara aquele argumento tal, com isso o "problema" de multiplos argumentos pode ser resolvido.

Diferentes tipos no Ruby

    Esse o Ruby não dispõe de algo que facilmente faça essa verificação para que seja facilitado, porém há modos simplificados de reproduzir o mesmo efeito.
Por exemplo:
vamos recriar o método tamanho dito no começo da aula, que retorna a quantidade de caracteres, ou do número ou do texto.
Nesse caso tem 3 entradas, float, integer ou string
Código: [Selecionar]
def um(tex)
  if tex.is_a?(Integer)
    um_integer(tex)
  elsif tex.is_a?(Float)
    um_float(tex)
  elsif tex.is_a?(String)
    um_string(tex)
  end
end

def um_integer(tex)
  p "um inteiro"
end
def um_float(tex)
  p "um número"
end
def um_string(tex)
  p "um texto"
end

Agora basta combinar a ideia de ambas, o número de argumentos e tipos diferentes para recriar a Sobrecarga de métodos :).


Finalizando

   Porque utilizar a sobrecarga de métodos? A ideia é simples, facilidade. Com apenas um método digamos, memorizado, posso recriar vários cenários que tenham a ver com aquele método, apenas mudando os parametros. Isso é amplamente utilizado em classes que são disponibilizados para outras pessoas, facilitando e muito a quantidade de métodos necessários para a função desejada.
   Aonde isso entra no RPG Maker? Simples, entra no momento que você quer disponilizar um script para ser usado por outros scripters, ou por Chamar Script, assim com poucos métodos, é possível recriar vários efeitos diferenciados, facilitando muito a pessoa que vai utilizar o seu script.

« Última modificação: 16 Dez 2015, 10:30 por Raizen »

 

Versão Mobile