Resolução do exercício anterior
i = 0
while i < $game_party.all_members.length
msgbox $game_party.all_members[i].level
i += 1
end
- Introdução
Nesta aula vamos falar sobre métodos!
Um método ou função é um ou um conjunto de instruções feito em um bloco.
Define-se um método da seguinte forma:
def nome_do_metodo
# instrução
end
A grande vantagem dos métodos é que assim que você os define, só
precisa chamá-los para que a ação seja executada. Isso poupa tempo e linhas de código.
Vamos a um exemplo básico:
def falar()
msgbox "Olá"
end
Vamos chamar o método:
falar()
Note que não é preciso o uso de parêntesis, mas por convenção, usa-se. Aqueles métodos
que vimos nas outras aulas também se aplicam a essa afirmação. msgbox e exit também são métodos!
def falar_mensagem(msg)
msgbox msg
end
A variável entre os parêntesis é chamada de argumento ou parâmetro,
dependendo do método pode não havê-lo ou haver mais de um. Ele serve para usarmos uma variável de fora nele, em resumo.
No caso acima poderia também por msgbox(msg). Os argumentos são separados por vírgula (ela também é um operador):
def falar_duas(msg1, msg2)
msgbox msg1 + " " + msg2
end
- O comando return
Quando usamos um método e esperamos um valor de retorno, usamos o comando return.
def potencia(n, p)
return n**p
end
O operador ** é o de potenciação. No exemplo acima podemos declarar uma variável que
receberá esse valor, veja:
var = potencia(2,3) # 2 ** 3 => 8
Atenção, assim que o return for lido, a função "quebrará", ou seja, irá parar de rodar e voltará a próxima linha
após o seu end.
def advinhar(n)
g = rand(3)
if g == n
return true
else
msgbox g
g = rand(3)
advinhar(n)
end
end
O método rand gera um número aleatório até o valor dado, no exemplo acima será 0, 1 ou 2.
Pode-se também chamar o método dentro dele próprio, esse é o conceito de recursividade.
O método continuará rodando até que o número da variável g seja o mesmo que o argumento.
- Exemplo
Vamos criar um método que verifica se o número é par.
def par_ou_impar(n)
if n % 2 == 0
return "é par"
else
return "é ímpar"
end
end
O operador % (modulo) é o de o resto da divisão.
par_ou_impar(22) # é par
par_ou_impar 37 # é ímpar
- Outro tipo de return
Em ruby, quando a última linha tem apenas o nome da variável ou expressão, fica implícito que há o seu retorno.
def retorno_explicito(n)
i = (n*2)+1
return i
end
def retorno_implicito(n)
(n*2)+1
end
- Exercício
Crie um método que retorne o maior valor de um array aleátorio (crie).
Dica: Você usará o for aqui, não se esqueça de usar o operador de maior.
Na próxima aula veremos classes.
Nenhum comentário:
Postar um comentário