A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Funções Declaração function nomedafunção (arg_1, arg_2,..., arg_n) corpoDaFunção end.

Apresentações semelhantes


Apresentação em tema: "Funções Declaração function nomedafunção (arg_1, arg_2,..., arg_n) corpoDaFunção end."— Transcrição da apresentação:

1 Funções Declaração function nomedafunção (arg_1, arg_2,..., arg_n) corpoDaFunção end

2 Funções Exemplo function foo (a, b) local x = a or 1 -- x recebe o valor padrão quando a e um valor falso local y = b or 1 -- y recebe o valor padrão 1 quando b e um valor falso return x + y, x * y End Chamada s, p = foo (3, 4) -- a e 3 e b e 4 print (s, p) --> 7 12 s, p = foo (2) -- b e nil e y e inicializado com 1 print (s, p) --> 3 2

3 Funções Número variável de parâmetros function maior3 (...) for i, v in ipairs {...} do if #v > 3 then print (v) end

4 Funções Retornando um único valor avaliando uma lista de expressões, obtém-se somente o primeiro valor de retorno de cada membro da lista, com exceção da ultima expressão, que pode retornar múltiplos valores normalmente a, b, c, d = foo (1, 2), foo (3, 4), foo (5, 6) print (a, b, c, d) -->

5 Funções Valores de Primeira Classe Funções em Lua são valores de primeira classe, o que quer dizer que podemos passar funções como argumentos para outras funções, bem como retornar funções. function map (f, t) for k, v in pairs (t) do t [k] = f (v) end

6 Funções Fechos sempre que Lua executa a definição de uma função, a função é instanciada (ou fechada) fecho => valor final da expressão

7 Tabelas Único mecanismo de estruturação de dados em Lua Implementam diretamente arrays associativos e arrays numéricos Podem ser usadas para implementar conjuntos e grafos Usadas também para representar registros, objetos e módulos Lua

8 Tabelas Manipulando Tabelas local t = {} for i=1, 3 do table.insert (t, i) end Ou local t = {} for i=1, 3 do t [i] = i end Ou ainda local t = {} for i=1, 3 do t [#t+1] = i end Operador # local t = {"a", "b", "c"} print (#t) --> 3 Retorna o tamanho da Tabela

9 Tabelas Programação OO em Lua Lua não é uma linguagem orientada a objetos Porém provê mecanismos que tornam possível a programação orientada a objetos

10 Tabelas Programação OO em Lua Uso de protótipos Classes Rectangle = { width = 0, height = 0 } Construtores function Rectangle.new (self, o) o = o or {} setmetatable (o, self) self.__index = self return o end

11 Tabelas Herança Cuboid = Rectangle:new ({depth=0}) function Cuboid:area () return 2 * (self.width * self.height + self.width * self.depth + self.depth * self.height) end function Cuboid:volume () return self.width * self.height * self.depth end local c1 = Cuboid:new () print (c1:area ()) --> 0 local c2 = Cuboid:new {width=1, height=2, depth=5} print (c2:area ()) --> 34 print (c2:volume ()) --> 10


Carregar ppt "Funções Declaração function nomedafunção (arg_1, arg_2,..., arg_n) corpoDaFunção end."

Apresentações semelhantes


Anúncios Google