Difference between revisions of "love.filesystem.load"

(Improved example)
m (included link to other languages)
Line 42: Line 42:
{{#set:Description=Load a file (but not run it)}}
{{#set:Description=Load a file (but not run it)}}
== Other Languages ==

Revision as of 08:18, 4 January 2011

Load a file (but not run it)



chunk = love.filesystem.load( name )


string name
The name (and path) of the file


function chunk
The loaded chunk


It is important to note that love.filesystem.load does not invoke the code, it just creates a function (a 'chunk') that will contain the contents of the file inside it. In order to execute the chunk, you have to put () behind it.

Also, it is worth noting that loaded files can return values. For example, the following file:

return 1+1

Will return 2, when called like this:

chunk = love.filesystem.load( name ) -- load the chunk
local result = chunk() -- execute the chunk
print('result: ' .. tostring(result)) -- prints 'result: 2'

This bluescreens if there is a syntax error in the loaded file. If you want to continue your game if the file is not valid (for example if you expect it to be written by users), you can protect the calling of the chunk with pcall:

chunk = love.filesystem.load( name ) -- load the chunk
local ok, errMsg = pcall(chunk) -- execute the chunk safely
if not ok then -- will be false if there is an error
  print('The following error happened: ' .. tostring(errMsg))
  print('The result of loading is: ' .. tostring(errMsg))

See Also

Other Languages