Skip to content

Latest commit

 

History

History
113 lines (90 loc) · 1.52 KB

fonctions.md

File metadata and controls

113 lines (90 loc) · 1.52 KB

Lua par l'exemple: Les fonctions

Les fonctions sont très importantes. Voici un exemple simple:

function bonjour()
  print("Bonjour")
end

bonjour()

-- output:
--  Bonjour

Un exemple avec passage de paramètres

function plus(a, b)
  print(a + b)
end

plus(5, 5)

-- output:
--  10

Fonction avec une valeur de retour:

function plus(a, b)
  return a + b
end

z = plus(5, 5))
print(z)
-- On aurait pu écrire directement: print(plus(5, 5))

-- output:
--  10

Fonction avec plusieurs valeurs de retour:

function vals()
  return 3, 7
end

function main()
  a, b = vals()
  print(a)
  print(b)
  
  -- Si nous ne voulons pas utiliser la première variable, il faut utiliser _
  _, c = vals()
  print(c)
end

-- output:
--  3
--  7
--  7

Lorsque nous avions vu le mot clef break je vous avais dit qu'il existait une autre solution. Nous y voilà:

-- Avec le mot clef break
function maFunc()
  for i=0, 10 do
    if i == 5 then
      break
    end
    print(i)
  end
  print("Fin")
end

maFunc()

-- output:
--  0
--  1
--  2
--  3
--  4
--  Fin

-- Avec le mot clef return
function otherFunc()
  for i=0, 10 do
    if i == 5 then
      return
    end
    print(i)
  end
  print("Fin")
end

otherFunc()

-- output:
--  0
--  1
--  2
--  3
--  4

Vous remarquerez que print("Fin") n'est pas lu dans notre cas. Le mot clef return permet de "sortir" de la fonction.

Dernière précision, une fonction peut appeler une autre fonction

Exemple suivant: Portée des variables.