Comment la notation pointée crée automatiquement une structure imbriquéeJusqu'à maintenant, vous avez créé des structures uniquement en utilisant StructNew (). Vous pouvez également créer des structures simplement en utilisant la notation pointée, comme suit:
Cette ligne crée une structure nommée aNewStruct avec une sous-structure nommée Somekey qui a un élément nommé SomeValue avec une valeur de 1. Notez que les noms de toutes les structures nouvellement créées et dont les clés sont en majuscules, quelle que soit la structure du capital que vous utilisez dans le code. En pratique, car cette méthode mai paraître, il n'a qu'un inconvénient. Considérons l'extrait suivant: Après l'exécution de l'extrait précédent, deux nouvelles clés, nommé myKey et yourKey, sont créés. Supposons que vous essayez maintenant d'appeler l'extrait suivant pour créer une structure imbriquée nommée myKey: Si la ligne précédente avait fonctionné, il aurait une valeur écrasé le précédent simple de myKey avec une sous-structure nommée myKey. Heureusement, cependant, de tenter d'écraser une simple clé avec une sous-structure génère une erreur dans ColdFusion MX. Vous ne font face à une limitation dans la création de clés de la structure en utilisant cette méthode. ColdFusion MX peut créer des structures imbriquées que trois niveaux de profondeur dans un seul appel, comme dans cet exemple: Tenter de créer une clé de plus de trois niveaux de profondeur vous donne des résultats inattendus. ColdFusion ignore tout mais les trois dernières touches. Exécutant le code suivant, par exemple, les produits "une valeur":
Vous pouvez, toutefois, de créer des structures imbriquées aussi profondément que vous voulez tant que vous n'essayez pas d'aller plus de trois niveaux plus profonds que celui qui existe actuellement. Parfois, des données n'est utile que si elle est triée dans un ordre spécifique. Bien que ce soit facile à faire avec des données tabulaires dans une base de données, tri des données dans une structure prend un peu plus de compréhension et d'efforts. Dites que vous avez une structure contenant les prix par livre de fruits différents, comme suivant: Vous pouvez boucler sur ces prix et la production-les en utilisant le code.
Le problème ici est que les structures n'ont aucune espèce d'ordre inhérent. Structure des clés sont stockés dans un ordre interne que seul le serveur ColdFusion comprend, et si vous en boucle sur la structure, c'est l'ordre que vous voyez. L'ordre dans lequel vous insérez les touches ne fait même pas question. StructSort () retourne un tableau des noms de clés triés par leurs valeurs (pas leurs noms de touches). Le code utilise StructSort () pour mettre les fruits frais dans l'ordre.
La plus grande différence entre les codes est l'approche que chacun prend pour boucler sur la structure. Dans la première, on met juste une boucle de collection standard, en se fondant sur ce que ColdFusion ordre de stockage est la structure dans le po d'une seconde, nous appelons StructSort () en premier, qui renvoie un tableau de noms de clés qui se présenter comme suit: 1: Pommes 2: Citrons 3: Peaches 4: Oranges 5: Cerises Ces éléments encore mai ne semble pas être dans un ordre particulier, mais regardez les prix suivants associés à chaque élément (bien que les valeurs entre parenthèses sont pas présents au moment du tableau): 1: Pommes (1.50) 2: Citrons (1.65) 3: Peaches (1.75) 4: Les oranges (1,99) 5: Cerises (2.25) Bien que les noms de touches apparaissent dans le tableau, les valeurs restent en arrière dans la structure. Après avoir appelé StructSort (), le code boucle dans keyArray, qui contient les noms triés clés. Au cours de cette boucle, keyArray [i] contient le nom de la clé actuelle, qui peuvent à leur tour être utilisés pour fournir le nom de clé à la structure de la FruitCosts. Si vous suivez le moteur de traitement ColdFusion ainsi étape par étape, la résolution de cette référence est la suivante: Étape 1: # FruitCosts [keyArray [i]] # Etape 2: # FruitCosts [keyArray [1]] # Etape 3: # FruitCosts [ "pommes"] # Résultat: 1.50 Mais que faire si vous voulez trier par une clé dans une structure imbriquée? Nous avons modifié la structure de FruitCosts tôt dans l'article en utilisant le code suivant: Chaque élément de la structure FruitCosts est une sous-structure contenant deux touches: "LB" (prix par livre) et "sac" (prix par sac). Donc, maintenant que vous avez cet ensemble de structures imbriquées, comment voulez-vous trier par prix par livre? Un quatrième attribut de StructSort () décrit une dot chemin d'accès à la valeur de tri, comme indiqué dans le code.
La bonne chose à propos de cette méthode est que vous pouvez très facilement passer à un tri par prix par sac, comme indiqué dans le code.
Vous pouvez trier par une clé de n'importe quel nombre de niveaux de profondeur en ajoutant des éléments à la dot path: Soyez conscient que, si la sous-clé spécifiée n'existe pas pour chaque élément de haut niveau dans la structure principale, ColdFusion renvoie une erreur. un article présenté par Amanda Baker Disclaimer:Notre site n'est pas responsable du contenu de cet article. Webarticles est une ressource d'information gratuite. Important: Cet article «Comment la notation pointée crée automatiquement une structure imbriquée" 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: 166 users browsing the articles directory |
|
|