vala et les chaines
Vala est un langage moderne et de haut niveau, en particulier les opérations sur les chaines de caractéres sont fortement simplifiés par rapport au C.
Voiçi quelques operations courantes:
- assigner une chaine à une variable: chaine = "ma chaine de caractéres";
- concaténer des chaines: nom_complet = "mon prénom" + "mon nom de famille";
nom_complet = prenom +nom;
nom_complet+=surnom;
- comparer deux chaines: if (nom == "Martin") bonjour();
- aiguiller en fonction du contenu d'une chaine: switch (nom) {
case "Martin":
bonjour();
break;
case "John":
hello();
break;
}
- itérer sur une liste d'éléments: foreach(mot in liste) {
stdout.printf("%s\n",mot);
}
Voici un petit exemple à compiler ainsi: valac -o strings strings.vala
Le programme:
using GLib;
public class StringExample : Object {
public static int main (string[] args) {
List<string> list = new List<string> (); //création d'une liste
list.append ("le "); //ajout d'un élément à la liste
list.append ("café ");
list.append ("fort!");
string sentence = "J'aime "; //assigne la chaine "j'aime" à la variable sentence
stdout.printf ("list.length () = %u\n", list.length ());
// iteration sur les élèments d'une liste
foreach (string element in list) {
stdout.printf ("%s\n", element);
//aiguillage sur des chaines
switch (element) {
case "fort!":
element="bien corsés!"; //assigne une chaine
break;
case "café ":
element+="mais aussi le thé "; //concatène une chaine
break;
}
sentence+=element;
}
stdout.printf("%s\n",sentence);
return 0;
}
}
Le résultat:
jp@jp-laptop:/media/hda3/vala$ /media/hda3/vala/strings
list.length () = 3
le
café
fort!
J'aime le café mais aussi le thé bien corsés!