love.filesystem.load (Português)

love.filesystem.load


Carrega um arquivo lua (mas não executa).

Função

Sinopse

bloco = love.filesystem.load( nome )

Argumentos

string nome
O nome (e caminho) do arquivo

Retorna

função bloco
O bloco carregado

Exemplo

É importante notar que love.filesystem.load não invoca o código, somente cria uma função (um "bloco") que contém o conteúdo do arquivo. Para executar esse bloco, é necessário colocar () depois dele.

Além disso, é importante notar que os arquivos carregados podem retornar valores. Por exemplo, o seguinte arquivo:

return 1+1

Irá retornar 2 quando chamado assim:

bloco = love.filesystem.load( nome ) -- carrega o bloco
local resultado = bloco() -- executa o bloco
print('resultado: ' .. tostring(resultado)) -- imprimie 'resultado: 2'

Se houver um erro de sintaxe no arquivo carregado, haverá uma tela azul. Para continuar o jogo se o arquivo não for válido (por exemplo se ele for escrito pelo usuário) você pode proteger a chamada do bloco com pcall:

local ok, bloco, resultado
ok, bloco = pcall( love.filesystem.load, nome ) -- carrega o bloco com segurança
if not ok then
  print('O seguinte erro aconteceu: ' .. tostring(bloco))
else
  ok, resultado = pcall(bloco) -- executa o bloco com segurança

  if not ok then -- será falso se houver um erro
    print('O seguinte erro aconteceu: ' .. tostring(resultado))
  else
    print('O resultado do carregamento é: ' .. tostring(resultado))
  end
end

Veja Também


Outras Línguas