L'opérateur length est représenté par l'opérateur unaire # (dièse).
La longueur d'une chaîne de caractères correspond à son nombre d'octets qui est, au sens habituel la "longueur de la chaîne" où chaque caractère est un octet.
La longueur d'une table t est définie comme étant tout indice entier n, tel que t[n] ne soit pas nil et que t[n+1] soit nil. En outre, si t[1] est nil, alors n peut être égal à zéro.
Pour une table régulière, où toutes les valeurs non-nil ont des clés de 1 à n, alors sa longueur sera exactement la valeur du dernier indice n.
Si la table a des "trous" (c'est-à-dire des valeurs nil comprises entre d'autres valeurs non-nil), alors #t pourrait être l'un des indices qui précède directement une valeur nil (ce serait alors cette dernière valeur nil qui pourrait être considérée comme la fin du tableau).
Un programme peut modifier le comportement de l'opérateur length par n'importe quelle valeur, par le biais des chaînes de méta-méthodes (voir le chapitre sur les métatables).
string = "Lua: Mode d'emploi." long = #string print(long) --> 19 -- y compris les espaces, les deux points (:), les apostrophes (') -- et les points (.)