Ir para conteúdo

Duvida: O Que É Retornar/return?


WolfyP

Posts Recomendados

Oi gente, sou iniciante em scripting e estou aqui porque me esbarrei com essa duvida.

 

Simplesmente não entendo a conotação da palavra "retornar" quando dita em relação a scripts de Lua. O mesmo para com a palavrinha "return" presente na maioria dos scripts, e além disso também não sei como usa-la. Já quebrei um pouco a cabeça pra tentar entender isso, mas tá dificil, acho que sou meio burrinho.

 

Em fim, se alguém puder me ajudar, ficarei grato!

 

 

 

happy.png

Editado por WolfyP
Link para o comentário
Compartilhar em outros sites

Não sei explicar muito bem, mas não custa nada tentar.

 

Toda function (função) tem que retornar algum valor para ser "finalizada", logo quando chegamos no return da função, a mesma é finalizada.

 

Se alguém que sabe explicar melhor estiver lendo a minha explicação, favor postar a explicação.

Link para o comentário
Compartilhar em outros sites

Não sei explicar muito bem, mas não custa nada tentar. Toda function (função) tem que retornar algum valor para ser "finalizada", logo quando chegamos no return da função, a mesma é finalizada. Se alguém que sabe explicar melhor estiver lendo a minha explicação, favor postar a explicação.

 

Sim mas porque existem scripts que não possuem Return no final?

 

E aquela coisa de:

 

End

 

return 1

 

End

 

Return 0

end

 

...

 

Não entendo porque dois returns.

Link para o comentário
Compartilhar em outros sites

Não é obrigatório usar o Return, depende do que você quer fazer.

 

End

return 1

End

Return 0

end

 

Script de Action eu suponho, certo?

 

O return 1 está dentro de uma condicional (não tem como eu saber qual era o proposito da condicional) pra finalizar a função, enquanto o return 0 está fora da condicional, ou seja, caso o objetivo da condicional não seja atingido, tem um return finalizando a função.

 

Espero que você tenha entendido ;B

Link para o comentário
Compartilhar em outros sites

Não é obrigatório usar o Return, depende do que você quer fazer.

 

End

return 1

End

Return 0

end

 

Script de Action eu suponho, certo?

 

O return 1 está dentro de uma condicional (não tem como eu saber qual era o proposito da condicional) pra finalizar a função, enquanto o return 0 está fora da condicional, ou seja, caso o objetivo da condicional não seja atingido, tem um return finalizando a função.

 

Espero que você tenha entendido ;B

 

 

Opa, me esclareceu algo.

 

Mas ainda não entendo porque não é obrigatório que já que todas funções/scripts precisam ser finalizados!

Link para o comentário
Compartilhar em outros sites

Não to com tempo pra verificar no meu OT, mas se eu bem me lembro e não me engano, um script de uma função sem return não demonstrará determinada resposta ao char, porque os returns das funções executam determinado "comando".

Se você usa uma spell sem return, a spell até sai, mas a spell word não.

Uma alavanca sem return acho que não envia mensagem pro player também do tipo: sorry not possible.

Link para o comentário
Compartilhar em outros sites

Não to com tempo pra verificar no meu OT, mas se eu bem me lembro e não me engano, um script de uma função sem return não demonstrará determinada resposta ao char, porque os returns das funções executam determinado "comando".

Se você usa uma spell sem return, a spell até sai, mas a spell word não.

Uma alavanca sem return acho que não envia mensagem pro player também do tipo: sorry not possible.

 

 

Man, obrigado. Me ajudou 60%.

 

Só não entendo porque você entende mas não sabe explicar.

Link para o comentário
Compartilhar em outros sites

Seguinte cara, existem 8 valores em lua: function, thread, number, string, table, userdata, nil e boolean.

 

De acordo com o manual de lua oficial, http://www.lua.org/m.../pt/manual.html, (... O comando return é usado para retornar valores de uma função ou de um trecho (que nada mais é do que uma função). Funções e trechos podem retornar mais de um valor ...).

 

Vale lembrar que sempre que quando o comando return é usado, a função ou trecho é imediatamente parada de execução.

 

Vou dar um exemplo:

 

function teste()

return "isto é uma string"
end

print(teste())

 

ele vai imprimir:

 

>> isto é uma string

 

Quando o comando return está ausente, a função simplesmente retorna o valor nil.

 

Quando usam return 1 ou return 0 nas funções main do otserv, seria equivalente a usar return true e return false.

Editado por Demonbholder
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...