Módulo
A instrução import é um açúcar sintático para requerer um módulo ou ajudar a extrair itens de um módulo importado. Os itens importados são const por padrão.
-- usado como desestruturação de tabelado import insert, concat from table -- reporta erro ao atribuir a insert, concat import C, Ct, Cmt from require "lpeg" -- atalho para require implícito import x, y, z from 'mymodule' -- import com estilo Python from 'module' import a, b, c
-- atalho para requerer um módulodo import 'module' import 'module_x' import "d-a-s-h-e-s" import "module.part"
-- requerer módulo com aliasing ou desestruturação de tabelado import "player" as PlayerModule import "lpeg" as :C, :Ct, :Cmt import "export" as {one, two, Something:{umm:{ch}}}-- usado como desestruturação de tabelado import insert, concat from table -- reporta erro ao atribuir a insert, concat import C, Ct, Cmt from require "lpeg" -- atalho para require implícito import x, y, z from 'mymodule' -- import com estilo Python from 'module' import a, b, c
-- atalho para requerer um módulodo import 'module' import 'module_x' import "d-a-s-h-e-s" import "module.part"
-- requerer módulo com aliasing ou desestruturação de tabelado import "player" as PlayerModule import "lpeg" as :C, :Ct, :Cmt import "export" as {one, two, Something:{umm:{ch}}}Import Global
Seção intitulada “Import Global”Você pode importar globais específicos para variáveis locais com import. Ao importar uma cadeia de acessos a variáveis globais, o último campo será atribuído à variável local.
do import tostring import table.concat print concat ["a", tostring 1]do import tostring import table.concat print concat ["a", tostring 1]Importação automática de variável global
Seção intitulada “Importação automática de variável global”Você pode colocar import global no topo de um bloco para importar automaticamente todos os nomes que não foram explicitamente declarados ou atribuídos no escopo atual como globais. Essas importações implícitas são tratadas como consts locais que referenciam os globais correspondentes na posição da instrução.
Nomes que foram explicitamente declarados como globais no mesmo escopo não serão importados, então você ainda pode atribuir a eles.
do import global print "hello" math.random 3 -- print = nil -- erro: globais importados são const
do -- variável global explícita não será importada import global global FLAG print FLAG FLAG = 123do import global print "hello" math.random 3 -- print = nil -- erro: globais importados são const
do -- variável global explícita não será importada import global global FLAG print FLAG FLAG = 123A instrução export oferece uma forma concisa de definir módulos.
Export nomeado
Seção intitulada “Export nomeado”Export nomeado definirá uma variável local e também adicionará um campo na tabela exportada.
export a, b, c = 1, 2, 3export cool = "cat"
export What = if this "abc"else "def"
export y = -> hallo = 3434
export class Something umm: "cool"export a, b, c = 1, 2, 3export cool = "cat"
export What = if this "abc"else "def"
export y = -> hallo = 3434
export class Something umm: "cool"Fazendo export nomeado com desestruturação.
export :loadstring, to_lua: tolua = yueexport {itemA: {:fieldA = 'default'}} = tbexport :loadstring, to_lua: tolua = yueexport {itemA: {:fieldA = 'default'}} = tbExportar itens nomeados do módulo sem criar variáveis locais.
export.itemA = tbexport.<index> = itemsexport["a-b-c"] = 123export.itemA = tbexport.<index> = itemsexport["a-b-c"] = 123Export sem nome
Seção intitulada “Export sem nome”Export sem nome adicionará o item alvo na parte array da tabela exportada.
d, e, f = 3, 2, 1export d, e, f
export if this 123else 456
export with tmp j = 2000d, e, f = 3, 2, 1export d, e, f
export if this 123else 456
export with tmp j = 2000Export padrão
Seção intitulada “Export padrão”Usar a palavra-chave default na instrução export para substituir a tabela exportada por qualquer coisa.
export default -> print "hello" 123export default -> print "hello" 123