arma_3:createurs_de_missions:sqf_for_noobs:variables

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
arma_3:createurs_de_missions:sqf_for_noobs:variables [2022/05/07 15:30]
admin [Itérables]
arma_3:createurs_de_missions:sqf_for_noobs:variables [2022/10/02 15:10] (Version actuelle)
admin [Hashmap] ajout
Ligne 44: Ligne 44:
 De manière générale une variable itérable est une collection de valeur. De manière générale une variable itérable est une collection de valeur.
 ==== Array ==== ==== Array ====
 +Un array (tableau en français) est une collection **ordonnée** de valeur, i.e. que les valeurs sont toujours rangés dans le même ordre (sauf si le programmeur décide de changer l'ordre explicitement). Les valeurs à l'intérieur d'un array sont de n'importe quelle type (des nombres, strings, bool,... Et même d'autres arrays).
 +
 +Voyons un exemple : ''my_array = [0, 1, "deux", "3", []];''.\\
 +Nous avons ici un array avec 5 valeurs à l'intérieur avec des types différents. Les deux premières valeurs sont de type nombre, les deux suivantes sont de type string. La dernière est simplement un autre array qui lui ne contient aucune valeur, on dit qu'il est vide (puisque c'est le cas) mais il existe bel et bien.
 +
 +J'imagine que vous avez compris en voyant cet exemple qu'un array est symbolisé par des crochets [] et que les éléments à l'intérieur sont séparés par des virgules.
 ==== Hashmap ==== ==== Hashmap ====
 +Un Hashmap est une structure de données dont le fonctionnement est similaire à un dictionnaire. Quand vous cherchez une définition dans un dictionnaire vous cherchez le **mot-clef** correspondant (ordonné alphabétiquement) dedans.\\
 +Dans un Hashmap chaque valeur que vous rentrez est lié à une **clef** définie par vous, les éléments sont donc des paires **key/value** et si vous l'avez compris, vous accéder à une valeur en appelant la clef au lieu d'un indice comme dans un array.
 +
 +En SQF, il faut utiliser soit les commandes [[https://community.bistudio.com/wiki?title=createHashMap&oldid=308959|createHashMap]] ou [[https://community.bistudio.com/wiki?title=createHashMapFromArray&oldid=308958|createHashMapFromArray]] pour créer votre Hashmap.\\
 +Les commandes [[https://community.bistudio.com/wiki?title=insert&oldid=330379|insert]], [[https://community.bistudio.com/wiki?title=set&oldid=329230|set]] et [[https://community.bistudio.com/wiki?title=deleteAt&oldid=310139|deleteAt]] permettent d'en manipuler les éléments.
 +
 +=== Pour aller plus loin ===
 +Fondamentalement un array et un Hashmap ont le même objectif, stocker d'autres variables/éléments. Néanmoins ils ne sont pas seulement différents en apparence mais également en terme de performances selon la tache, ainsi le choix d'utiliser l'une de ces structure est motivé par son utilisation.\\
 +E.g. un array est plus performant pour toutes opérations concernant l'ensemble des éléments, parcourir un array par une boucle étant plus rapide que pour un hashmap de même nombre d'éléments où l'on accède à chaque élément par la clef. À l'inverse, le temps d'accès à la valeur d'un seul élément pour un hashmap est constant quelque soit sa taille (grâce à l'utilisation d'une clef permettant d'accéder directement à la mémoire) tandis que ce dernier grandit en fonction du nombre d'éléments pour un array (le programme parcourt tous le tableau pour trouver le bon éléments.
  
 ===== Types spécifiques du SQF ===== ===== Types spécifiques du SQF =====
  • arma_3/createurs_de_missions/sqf_for_noobs/variables.1651937417.txt.gz
  • Dernière modification: 2022/05/07 15:30
  • de admin