Traiter avec des éléments videsLes éléments vides sont des éléments dans une liste qui ne contiennent aucune valeur. Pour voir la façon de traiter avec eux, prendre la liste suivante: Combien d'éléments sont en myList? On dirait que six, mais les fonctions de liste de ColdFusion voyez que quatre chefs d'accusation parce que ColdFusion éléments de la liste vide, comme celle entre la poire et l'orange et l'élément vide à la fin de la liste, comme inexistante. Si vous avez besoin d'un élément vide, vous devez mettre des espaces dans la liste, comme dans l'exemple suivant: Une bonne pratique est d'éviter les éléments vides si possible. Liste de ColdFusion fonctions de traitement de travailler différemment que ne le font la liste de fonctions de traitement dans la plupart des autres langues et pourrait présenter un problème de portabilité. Que faire si vous avez soudain besoin d'utiliser un point-virgule comme séparateur de liste au lieu d'une virgule? Vous devriez utiliser ListChangeDelims () comme suit: myList contient maintenant "pomme poire, orange, banane". Ce qui est intéressant ListChangeDelims () est qu'il supprime automatiquement les éléments vides. Prenez, par exemple, la liste suivante:
ListChangeDelims () renvoie "pomme poire, orange, banane". Utilisation ListChangeDelims (), par conséquent, est aussi un bon moyen pour supprimer les éléments vides même si vous ne changeons pas les délimiteurs, comme suit: Les listes que nous avons utilisée dans les parties précédentes ont toutes été dans un ordre aléatoire. Si vous avez besoin des éléments dans une liste qui doit être dans un ordre particulier, vous pouvez utiliser ListSort (), comme suit: Après avoir appelé ListSort (), myList contiendrait les éléments suivants: pomme, banane, orange, poire Comme le fait ListChangeDelims (), ListSort () supprime les éléments vides. Le second argument de ListSort () est le type de tri à effectuer. Cet argument peut prendre l'une des trois valeurs suivantes: Numérique: La liste sera triée numériquement. Si un élément liste ne peut être converti en un nombre, ColdFusion renvoie une erreur. Texte: La liste sera triée par ordre alphabétique, mais est sensible à la casse. Essayez d'appeler ListSort () sur la liste suivante: Poire, pomme, banane, pêche Cet appel serait la réponse suivante: Banane, poire, pomme, pêche Un tri sensibles renvoie toujours les lettres en majuscules avant les lettres en minuscules, comme tel, tous les mots en majuscules ne sorte avant toute-initial mots plafonnés. Juste le fait qu'une lettre est en majuscule suffit à garantir que la lettre sera passer avant toute lettre en minuscule. Textnocase: trie la liste par ordre alphabétique, le cas ignorer. Calling ListSort () sur la liste ci-dessus serait la réponse suivante: pomme, banane, pêche, poire Le troisième argument ListSort () peut être asc ou desc selon si vous voulez un ordre croissant ou décroissant. Supposons que vous avez eu la liste suivante: poire, orange, citron, citron Mais supposons aussi que vous vouliez l'utiliser dans une requête comme celle-ci: SELECT * FROM fruits où FruitName IN ( 'php', 'orange', 'Lemon', 'Citron') On ne pouvait pas simplement l'utiliser comme suit: SELECT * FROM fruits où FruitName IN (myList # #) C'est parce que myList n'a pas de guillemets simples autour de ses éléments, et la base de données serait de lever une erreur quand il a essayé d'exécuter la requête. Avant d'utiliser myList dans une requête, vous devez qualifier les éléments de la liste en les entourant de guillemets simples. ColdFusion offre une fonction nommée ListQualify () pour le faire, comme le montre l'exemple suivant: SELECT * FROM fruits où FruitName IN (# ListQualify (myList, "'")#) Le second attribut décrit le qualificatif dans ce cas, une seule offre. Tableaux, de même que des listes, stocker plusieurs valeurs sous un nom unique et possède une bibliothèque de fonctions intégrées autour d'eux. Contrairement aux listes, cependant, les tableaux de stocker des données dans des compartiments séparés et non pas seulement comme une chaîne délimitée. Lorsque des listes sont des variables simples (c'est à dire qu'ils ne sont que de simples chaînes avec des délimiteurs formellement défini), les tableaux sont des variables complexes, ce qui signifie qu'ils contiennent plus mai à une valeur unique et de créer des compartiments adressable par programme pour ces valeurs. Contrairement à une liste, qui est une variable de chaîne simple, un tableau est un type spécial d'objet qui est créé par l'appel d'une fonction nommée ArrayNew (), comme suit: ArrayNew () crée une nouvelle, un objet-tableau multidimensionnel et il assigne à la myArray variable. Un tableau peut avoir jusqu'à trois dimensions. Un tableau unidimensionnel crée une pile d'éléments. Un tableau à deux dimensions est comme une grille d'éléments. Comme vous pouvez probablement le deviner, un tableau à trois dimensions est comme un cube d'éléments. Les tableaux multidimensionnels sont rarement utile, sauf si vous faites des mathématiques matrice (dont nul ne devrait faire dans ColdFusion toute façon). Vous faites référence à un élément de tableau grâce à la notation de position, comme suit:
Cet extrait de code génère le deuxième élément dans le tableau. L'index d'un tableau (le nombre entre les crochets) peut également être une variable contenant une valeur numérique. Quand on dit que les tableaux commencer à compter au 1er mai semblent superflus, mais dans la plupart des langages informatiques tels que JavaScript, les tableaux commencent à l'élément 0. Gardez ce fait à l'esprit si vous remplissez jamais un tableau JavaScript en utilisant les éléments de tableau ColdFusion. Pour ajouter un élément à la fin d'un tableau, utilisez ArrayAppend (), comme suit: Notez la différence entre ListAppend () et ArrayAppend () dans les exemples suivants: ListAppend () ne modifie pas la liste initiale, mais plutôt, elle retourne la liste originale avec le nouvel élément en annexe. ArrayAppend (), cependant, modifie le tableau original. La seule chose qui ArrayAppend () ne revient jamais est vrai, si vous n'avez même pas besoin de stocker la valeur de retour. ColdFusion a également un ArrayPrepend () fonction, comme suit: Vous pouvez également insérer un élément nouveau tableau entre les éléments déjà existants. Après avoir appelé ArrayNew () et ArrayAppend () plus haut dans cet article, par exemple, regarde myArray comme suit: 1: Peach 2: Apple Vous pouvez insérer un nouvel élément entre les deux en utilisant ArrayInsertAt () comme suit: monTableau est maintenant un élément nouveau entre la pêche et de pomme, comme le montre le texte suivant: 1: Peach 2: citron 3: Apple Vous pouvez également créer des éléments du tableau en attribuant directement une valeur à une position, comme suit: Maintenant a myArray un quatrième élément, comme vous pouvez le voir dans le résultat suivant: 1: Peach 2: citron 3: pomme 4: bleuet Vous pouvez aussi sauter les éléments, comme suit: Ce code permet à un autre élément de tableau dans myArray, comme indiqué dans le texte suivant: 1: Peach 2: citron 3: pomme 4: bleuet 5: Avis qu'aucun élément se trouve à la position 5 dans monTableau. Ce résultat ne signifie pas que l'élément est vide, il n'existe tout simplement pas. La différence entre blanc et non-existante est parfois difficile à comprendre, mais il se résume à ceci: Tentative d'utilisation monTableau [5] lorsque le cinquième élément n'existe pas renvoie une erreur, alors que si le cinquième élément est vide, monTableau [5 ] retournera une chaîne vide. Vous pouvez supprimer un élément dans un tableau en utilisant ArrayDeleteAt (), comme suit: Cette ligne supprime le sixième point à partir du tableau que nous décrivons dans la partie précédente. Notez que la nouvelle longueur du tableau est maintenant cinq ans, même si le cinquième élément est indéfini. Si vous avez besoin de supprimer rapidement tous les éléments d'un tableau, utilisez ArrayClear (), comme suit: Après l'appel ArrayClear (), le tableau n'a pas d'éléments restants. Suivant est un moyen facile de savoir si un tableau a des éléments: Ce tableau est vide. Ce tableau a au moins un élément. Pour connaître le nombre précis d'éléments dans un tableau, utilisez ArrayLen (), comme suit: Les deux ArrayLen () et ArrayIsEmpty () count éléments indéfinis, donc soyez prudents, car vous le faites habituellement pas compte des éléments non définis dans le reste de votre code. Trouver un élément dans une liste est une simple question d'appeler ListFind () ou ListFindNoCase (). Vous avez, cependant, aucun tableau d'équivalence basée à ListFind (). Au lieu de cela, vous devez utiliser une boucle, comme suit: Après cette boucle est terminée, i contient l'index du tableau qui contient "pomme", dans ce cas, 3. Une fonction d'agrégation prend un tableau contenant des chiffres comme un argument et retourne une valeur unique représentant certaines caractéristiques de ces numéros. ColdFusion tableaux ont quatre fonctions d'agrégation, et elles sont toutes reprises dans le code. Notez que les fonctions d'agrégat sont indiqués en caractères gras, et que chacun d'entre eux prennent un seul argument: le tableau contenant les données qui doivent être agrégées.
Si des éléments dans un tableau ne peuvent être convertis en un nombre, ColdFusion lève une erreur si vous essayez d'utiliser une fonction d'agrégation. Une autre caractéristique des tableaux qui ont listes ne sont pas la capacité d'échanger facilement des éléments. Supposons que monTableau se présente comme suit: 1: Peach 2: citron 3: pomme 4: bleuet Pour échanger les premier et troisième éléments, vous pouvez utiliser ArraySwap (), comme suit: monTableau serait alors se présenter comme suit: 1: Apple 2: citron 3: à la pêche 4: bleuet Comme pour les listes, vous pouvez facilement trier un tableau à l'aide ArraySort (), comme suit: Après l'appel ArraySort (), myArray contiendrait les éléments suivants: 1: Apple 2: Blueberry 3: citron 4: Peach Si des éléments non définis sont dans le tableau comme vous essayez d'utiliser ArraySort (), ColdFusion renvoie une erreur. En ce qui concerne ListSort (), le second argument de ArraySort () décrit le type de tri que vous souhaitez effectuer. Cet argument peut prendre les trois valeurs suivantes: Numérique: trie le tableau numériquement. Si un élément de tableau ne peuvent être convertis en un nombre, ColdFusion renvoie une erreur. Texte: trie le tableau par ordre alphabétique, mais est sensible à la casse. Supposons que vous appelez ArraySort () sur le tableau suivant: 1: Poire 2: Blueberry 3: Apple 4: Peach Cet appel devrait retourner le résultat suivant: 1: Apple 2: Poire 3: Blueberry 4: Peach Textnocase: trie le tableau par ordre alphabétique, le cas ignorer. ArraySort Calling () sur le tableau précédent ne seraient retourner le résultat suivant: 1: Apple 2: Blueberry 3: Peach 4: Poire Le troisième argument ArraySort () peut être asc ou desc, selon si vous voulez un ordre croissant ou décroissant. Chaque fois que vous ajoutez un élément à un tableau, vous êtes l'allocation de mémoire dans le serveur ColdFusion. Parfois, cependant, pas assez de mémoire est disponible dans l'emplacement actuel du tableau, si cela se produit, l'ensemble du réseau doit être réaffectés et déplacé. Cette opération peut être très coûteux en termes de temps CPU et utilisation de la mémoire si vous avez plus de quelques éléments dans votre tableau. Par souci d'efficacité, si vous savez le nombre d'éléments qu'un tableau doit contenir avant de commencer à ajouter eux, vous pouvez utiliser ArrayResize () à pré-allouer l'espace dont vous avez besoin, comme suit: Pour une efficacité maximale dans votre code, appelez ArrayResize () immédiatement après ArrayNew (). Listes d'offres à certaines caractéristiques que les tableaux ne sont pas, comme la possibilité de trouver facilement un élément. Mais vous pouvez aussi faire des choses faciles avec des tableaux qui sont difficiles avec des listes, comme la recherche d'une moyenne. Pour cette raison, vous vous retrouvez souvent en utilisant une liste lorsque vous avez besoin de la fonctionnalité d'un tableau et vice-versa. Pour contourner cette énigme, vous pouvez convertir une liste à un tableau ou un tableau à une liste en utilisant le ListToArray () et ArrayToList () fonctions, comme suit: Ces fonctions peuvent être très gourmand en mémoire pour de grandes listes et les tableaux, on utilise donc ces deux fonctions que si vous en avez vraiment besoin. Si votre tableau contient des valeurs complexes, ArrayToList () renvoie une erreur. Notez également que lorsque vous convertir une liste à un tableau utilisant ListToArray (), ColdFusion supprime des éléments vides du tableau, mais l'inverse n'est pas vrai. ArrayToList () préserve les éléments vides dans le tableau, peut-être jeter hors du code qui exige à la fois à synchroniser. Une fois que vous savez comment utiliser des listes et des tableaux, vous avez besoin pour décider quoi faire avec eux. Les deux exposer une grande partie de la même fonctionnalité, si ce qui est mieux pour quoi faire? Pensez à des listes plus que plusieurs valeurs chaînes que comme réels les types de données complexes. Les listes sont bons pour entreposer des ensembles de données dans laquelle vous mai nécessité de trouver des points rapidement. Les tableaux sont mieux adaptés pour des séries très ordonnée de données, surtout si vous devez coordonner le contenu de deux tableaux. Rappelez-vous aussi que les tableaux sont le seul moyen efficace d'utiliser des fonctions d'agrégation. Vous devez, cependant, les listes de l'utiliser si vous devez stocker des données dans une variable à la clientèle. Vous ne pouvez pas utiliser un tableau à cet effet, car les variables du client ne peut pas stocker de données complexes. Vous pouvez cependant les convertir le tableau à une liste, puis on stocke la liste dans une variable à la clientèle. Comme nous l'avons mentionné plus haut dans cet article, si vous ne pouvez pas garantir que les délimiteur particulier va apparaître dans les éléments de liste, vous devriez utiliser un tableau pour stocker les données à la place. Un tableau se sépare de ses valeurs les uns des autres en gardant chaque valeur dans son propre compartiment plutôt que de les enfiler tous ensemble. Les tableaux et les listes sont des outils puissants si elles sont appliquées correctement. Chacun a ses avantages et ses inconvénients, mais dans la plupart des cas, vous pouvez convertir un à l'autre afin que son ensemble spécifique de fonctions peuvent être utilisées. Dans cet article, vous avez appris à utiliser efficacement les deux tableaux et listes, et aussi comment choisir entre les deux listes. sont des variables simples qui contiennent plusieurs valeurs séparées par des délimiteurs, et ils sont utiles lorsque vous n'avez pas besoin d'utiliser les fonctions globales sur leurs valeurs. Les tableaux sont des variables complexes qui contiennent plusieurs valeurs dans des compartiments adressable par programme, et ils sont utiles lorsque les fonctions d'agrégation sont nécessaires. un article présenté par Albert Niftiger Disclaimer:Notre site n'est pas responsable du contenu de cet article. Webarticles est une ressource d'information gratuite. Important: Cet article "Traiter avec les éléments vides» a été traduit par un logiciel automatique. Nous nous sentons désolés pour les fautes d'orthographe que mai ont eu lieu. Nous vous remercions de votre compréhension.
|
|||||
| Online: 278 users browsing the articles directory |
|
|