LoriotPro Extended Edition Documentation language LUA

TDM


Les chaînes de caractères


Déclaration de chaînes de caractères, guillements et crochets

Des chaînes de caractères peuvent être définies utilisant des guillements simples, de doubles guillements, ou de doubles crochets.

> = "bonjour"
bonjour
>= 'bonjour '
bonjour
>= [ [ bonjour ] ]
bonjour

Pourquoi tant de manières de faire une chaîne de caractères ? Elle vous permet de joindre un type de guillements dans l'autre par exemple,

> = 'hello "Lua user"'
hello "Lua user"
> = "Its [[content]] hasn't got a substring."
Its [[content]] hasn't got a substring.
> = [[Let's have more "strings" please.]]
Let's have more "strings" please.

Les chaînes de caractères encadrées par double crochets ont également quelques autres propriétés spéciales, abordées ci-dessous.

Séquences d'échappement

Lua peut également manipuler des séquences d'échappement comme en C.

> = "hello \"Lua user\""
hello "Lua user"
> = 'hello\nNew line\tTab'
hello
New line Tab

Des séquences d'échappement ne sont pas identifiés à l'aide de doubles parenthèses, ainsi :

> = [[hello\nNew line\tTab]]
hello\nNew line\tTab

guillements multilignes

De doubles crochets peuvent être utilisés pour enfermer les chaînes de caractères littérales qui traverse plusieurs lignes par exemple,

> = [[Multiple lines of text
>> can be enclosed in double square
>> brackets.]]
Multiple lines of text
can be enclosed in double square
brackets.

Des lignes multiples du texte peuvent être jointes dans de doubles crochets.

guillements emboîtés

Seulement les doubles crochets permettent l'emboîtement :

> = [[one [[two [[three]] ]] ]]
one [[two [[three]] ]]

Concaténation

Des chaînes de caractères peuvent être jointes en utilisant l'opérateur de concaténation "..". par exemple,

> = "hello" .. " Lua user"
hello Lua user
> who = "Lua user"
> = "hello "..who
hello Lua user

Des nombres peuvent être enchaînés aux chaînes de caractères . Dans ce cas-ci ils sont contraints dans des chaînes de caractères et alors enchaînés. Vous pouvez lire plus au sujet de la coercition ci-dessous.

> = "Green bottles: "..10
Green bottles: 10
> = type("Green bottles: "..10)
string

La bibliothèque de chaîne de caractères

Lua assure une gamme des fonctions utiles pour le traitement des chaînes de caractères dans sa bibliothèque standard. Ci-dessous quelques exemples de l'utilisation de la bibliothèque de chaîne de caractères.

> = string.byte("ABCDE", 2) -- return the ASCII value of the second character
66
> = string.char(65,66,67,68,69) -- return a string constructed from ASCII values
ABCDE
> = string.find("hello Lua user", "Lua") -- find substring "Lua"
7 9
> = string.find("hello Lua user", "l+") -- find one or more occurrences of "l"
3 4
> = string.format("%.7f", math.pi) -- format a number
3.1415927
> = string.format("%8s", "Lua") -- format a string
Lua

Coercition

Lua exécute la conversion automatique des nombres en chaînes de caractères et vice versa si c'est approprié. Ceci s'appelle la coercition.

> = "This is Lua version " .. 5.0 .. " we are using."
This is Lua version 5 we are using.
> = "Pi = " .. math.pi
Pi = 3.1415926535898
> = "Pi = " .. 3.1415927
Pi = 3.1415927

Ci-dessus, pendant la coercition, nous n'avons pas le plein contrôle du formatage de la conversion. Pour formater le nombre comme nous le souhaitons en chaîne de caractères nous pouvons employer la fonction string.format() comme dans l' exemple ci-dessous,

> = string.format("%.3f", 5.0)
5.000
> = "Lua version " .. string.format("%.1f", 5.0)
Lua version 5.0

C'est une conversion explicite en utilisant une fonction pour convertir le nombre, plutôt que d'utiliser la coercition. Vous pouvez lire plus au sujet de la coercition des nombres dans Nombres.


www.loriotpro.com