Première version
Créez un fichier nommé mymodule.lua puis mettez-y le code suivant :
1
2
3
4
5
6
7
|
local mymodule = {}
function mymodule.foo()
print("Hello world!")
end
return mymodule
|
Maintenant, pour pouvoir utiliser notre nouvelle lib dans un autre fichier, il suffit de l’appeler comme ceci :
1
2
3
4
5
|
monModule = require "mymodule"
monModule.foo()
-- output:
-- Hello world!
|
Si vous mettez votre lib dans un répertoire ou plusieurs répertoire(s), il faudra l’appeler comme ceci :
1
2
3
4
5
|
monModule = require "monRep.unAutreRep.mymodule"
monModule.foo()
-- output:
-- Hello world!
|
Exemple complet
Fichier dans le répertoire fmt: fmt/printf.lua
1
2
3
4
5
6
7
|
local fmt = {}
function fmt.printf(str, ...)
io.write(string.format(str, ...))
end
return fmt
|
Fichier utilisant fmt/printf.lua :
1
2
3
4
5
6
7
|
local fmt = require "fmt.printf"
local name = "Julien"
fmt.printf("Bonjour %s", name)
-- output:
-- Bonjour Julien
|
En Lua, le séparateur est un . et non un "/" ou un ""
Deuxième version
C’est celle que je préfère car je n’ai pas besoin de taper à chaque fois fmt.printf. Elle est donc
plus canonique. Comme la première version, elle a ses avantages et ses inconvénients.
Exemple complet
Créez un fichier fileExists.lua et mettez-y le code suivant :
1
2
3
4
5
6
|
local function fileExists(filename)
local f = io.open( filename, 'r' )
if f ~= nil then io.close( f ) return true else return false end
end
return fileExists
|
Maintenant, créez un fichier test.lua avec le code suivant :
1
2
3
4
5
6
7
8
9
10
|
local fileExists = require( 'fileExists' )
local response = fileExists( 'fileExists.lua' )
print( response )
response = fileExists( 'fichier_qui_nexiste_pas.lua' )
print( response )
-- output:
-- true
-- false
|