Variables

Q-SYS Control 101 Training (French) : Contrôle de flux

3 ) Communication simple

12m 48s

4 ) Blocs de contrôle

19m 7s

5 ) Notions de base sur les scripts

32m 5s

6 ) Contrôle de flux

34m 20s

7 ) Conclusion du Control 101

1m 43s

Description de la leçon

Variables 5m 41s

Simplifiez le code en utilisant des variables pour référencer des objets dans Lua et le Block Controller 

Transcription Vidéo

Variables 5m 41s
0:08
Parlons des variables. On entend souvent le mot « variables » dans les films de braquage de banque
0:13
lorsqu'ils parlent de choses qui pourraient mal tourner. Vous pouvez entendre une variable être définie
0:18
comme étant « connue-inconnue » – une chose dont vous savez qu'elle existe, mais dont vous ne savez
0:22
pas ce que c'est. Mais souvent, dans les scripts, vous saurez bien ce qu’est votre variable, et vous
0:27
choisirez juste d'en utiliser une pour rendre votre script plus facile à écrire. Je préfère considérer une
0:33
variable comme l'étiquette pratique d'une valeur qui peut ou non changer.
0:39
En algèbre, vous avez probablement vu x, y et z souvent utilisées comme variables : ce ne sont que des
0:45
lettres représentant un autre nombre. Dans Lua, vous pouvez définir ces variables rien qu’en tapant leur
0:51
nom, le signe égal, puis ce que vous voulez que la variable représente.
0:56
Mais vous n'êtes pas limité aux simples lettres ou chiffres. Vous pouvez utiliser des mots entiers pour
1:01
représenter des variables, et une variable peut définir une valeur numérique, une chaîne de caractères,
1:08
ou une propriété de contrôleur, ou même une fonction complète ou plus encore.
1:12
Voici un exemple d'utilisation d'une variable pour représenter une valeur changeante. Je vais assigner la
1:17
variable « s » à la chaîne « Hello », puis l’imprimer avec « print(s) ». Cela imprime la variable s et non
1:24
littéralement le caractère « s ». Ensuite, je vais réassigner la variable « s » à la chaîne « World » et à
1:32
nouveau l’imprimer.
1:33
Les deux commandes « print(s) » sont identiques, mais comme la variable a changé entre les deux
1:38
pendant que le compilateur parcourt le script, nous obtenons deux résultats différents, basés sur ce
1:43
qu’était la variable au moment où la commande a été émise.
1:48
De même, vous pouvez utiliser une variable pour représenter la valeur ou la chaîne d'un contrôleur. Ces
1:54
informations ne sont pas définies dans votre script, elles proviennent de l'environnement Q-SYS normal.
2:00
Mais quand vous imprimez votre variable, cela vous donne l'état actuel de ce contrôleur.
2:05
Souvent, vous pouvez utiliser une variable comme un raccourci facile pour quelque chose qui est utilisé
2:10
plusieurs fois. Imaginons un script plus grand avec plusieurs fonctions devant toutes renvoyer une
2:16
chaîne « Message Complete ».
2:19
Pour changer cette chaîne, il faudrait la chercher dans chaque fonction et la changer ligne par ligne, ou
2:26
vous pourriez utiliser d‘entrée une variable. Vous pouvez alors définir votre variable au début du script,
2:32
de sorte que vous n'avez besoin de la modifier qu'à un seul endroit et ce changement sera reporté dans
2:37
chaque référence à cette variable.
2:40
Ces variables que nous avons créées sont appelées variables globales, car elles sont valables dans tout
2:45
votre script. Parfois, vous pouvez vouloir créer une variable locale, qui sera définie dans le corps d'une
2:51
fonction ou d'une structure de contrôleur pour que cette variable ne soit valide que dans le cadre de
2:56
cette fonction. Si vous avez par exemple plusieurs fonctions qui font toutes des choses très similaires, il
3:02
pourrait être fastidieux d'utiliser des variables globales telles que output1, output2, output3, etc. Au lieu
3:08
de cela, chaque fonction pourrait créer sa propre variable locale appelée « output » qui n'interagirait
3:13
jamais avec quoi que ce soit en dehors de sa fonction. Nous verrons comment créer des fonctions dans
3:17
la prochaine vidéo.
3:18
Dans le Block Controller, vous pouvez manipuler des variables avec les blocs que vous trouverez dans
3:23
l'onglet « Variables et fonctions ». Utilisez le bloc « Create » pour créer une nouvelle variable, que vous
3:29
pouvez ensuite définir (ou non) de l'autre côté du signe égal.
3:34
Vous pouvez ensuite régler cette variable sur une nouvelle valeur à l'aide du bloc « set ». Si vous avez
3:40
besoin de faire référence à cette variable, vous pouvez utiliser ce bloc-ci avec le nom de la variable. Si je
3:46
voulais imprimer une variable définie par l'une des valeurs de mon contrôleur, je pourrais le faire ainsi.
3:52
Lorsque vous aurez créé plusieurs variables, vous verrez que leurs noms sont tous disponibles dans le
3:56
menu déroulant. Vous remarquerez que le nom de la variable par défaut est « foo », comme dans les Foo Fighters.
4:06
Et oui. Les Foo Fighters. D'accord, mais sérieusement, si vous n'aimez pas le nom Foo, vous pouvez bien
4:13
sûr le changer, mais c'est un bon nom. Pour les anglophiles et ceux d'entre vous qui connaissent bien le
4:19
répertoire des Foo Fighters, permettez-moi de dire ceci. All My Life, j'ai eu affaire à des variables, et une
4:26
bonne variable globale est My Hero. Il n'y a aucune raison de jeter une Monkey Wrench dans votre
4:31
script dans des Times Like These. Pensez à une variable comme le Pretender, qui peut représenter tout
4:37
ce que vous voulez. Elle donnera le Best of You… et avec elle votre projet durera… Everlong.
4:45
Une dernière chose dans le Block Controller, notez qu'il sait que la variable est globale. Alors que si vous
4:52
créez cette variable dans un bloc de fonction, il comprend automatiquement qu'il s'agit d'une variable
4:58
locale. Vous n'avez pas besoin de choisir l'une ou l'autre.
5:02
En outre, dans Block Controller, vous ne pouvez utiliser le bloc Create qu'une seule fois pour chaque
5:07
variable. Une fois la variable créée, vous ne pouvez la modifier qu'à l'aide du bloc Set. Dans Lua, vous
5:14
pouvez utiliser la même commande pour créer ou redéfinir une variable, comme vous pouvez le voir
5:19
dans l'onglet Lua de ces blocs : « foo='awesome' » et « foo='moreawesome' » mais le Block Controller a
5:26
besoin de ces deux concepts séparés.
5:29
Et c'est tout pour les variables. Nous avons un exercice sur les variables dans votre Cahier d'exercices Q-SYS
5:34
Contrôle, et une fois fait, nous parlerons des fonctions.