Come notazione crea automaticamente una struttura nidificataFino ad ora, che hai creato le strutture solo utilizzando StructNew (). È inoltre possibile creare strutture giuste utilizzando la notazione del punto, come segue:
Che la linea crea una struttura denominata aNewStruct con una sottostruttura di nome SomeKey che ha un elemento di nome SomeValue con un valore di 1. Si noti che i nomi di tutte le strutture di nuova costituzione e le chiavi sono tutte maiuscole, a prescindere dalla capitalizzazione che si utilizza nel codice. Conveniente come questo metodo possa sembrare, ha uno svantaggio. Si consideri il seguente frammento: Dopo l'esecuzione del frammento precedente, due nuove chiavi, denominato myKey e YourKey, sono state create. Supponiamo che ora tenta di chiamare il seguente frammento di creare una struttura nidificata denominata myKey: Se la linea precedente aveva funzionato, sarebbe sovrascritto il valore precedente di semplice myKey con una sottostruttura di nome myKey. Fortunatamente, però, il tentativo di sovrascrivere una semplice chiave con una sottostruttura genera un errore in ColdFusion MX. You do di fronte a una limitazione nella creazione di chiavi struttura utilizzando questo metodo. ColdFusion MX è possibile creare strutture nidificate solo fino a tre livelli di profondità in una sola chiamata, come in questo esempio: Il tentativo di creare una chiave più di tre livelli di profondità si dà risultati inaspettati. ColdFusion ignora tutto, ma gli ultimi tre tasti. L'esecuzione del codice seguente, ad esempio, le uscite "un certo valore":
È possibile, tuttavia, creare strutture annidate profondamente come si vuole, purché non tentare di andare più di tre livelli più profondi rispetto alla situazione esistente. A volte i dati è utile solo se è ordinato in un ordine specifico. Anche se questo è facile da fare con i dati tabulari in un database, l'ordinamento dei dati in una struttura prende un po 'più di comprensione e di impegno. Supponete di avere una struttura che contiene i prezzi al chilo di frutti diversi, come segue: È possibile loop su questi prezzi e la produzione li utilizzando il codice.
Il problema qui è che le strutture non hanno alcun tipo di ordine intrinseco. Struttura chiavi vengono memorizzate in un ordine interno che solo ColdFusion Server capisce, e se si loop sulla struttura, che è l'ordine che si vede. L'ordine in cui si inserisce le chiavi non ha importanza. StructSort () restituisce un array di nomi chiave ordinato per i loro valori (non i loro nomi chiave). Il codice utilizza StructSort () per mettere il frutto dei costi in ordine.
La differenza più grande tra i codici è l'approccio che ognuno si prende per il ciclo sulla struttura. Nel primo, che abbiamo appena utilizzare un ciclo standard di raccolta, basandosi su qualsiasi ColdFusion fine memorizzato il poll struttura Nella seconda, che noi chiamiamo StructSort () in primo luogo, che restituisce un array di nomi chiave che guardare come segue: 1: Mele 2: Limoni 3: Pesche 4: Arance 5: Ciliegie Questi elementi ancora non può sembrare di essere in un ordine particolare, ma a guardare i seguenti prezzi associati ad ogni elemento (anche se i valori in parentesi che in realtà non fanno parte della matrice): 1: Mele (1,50) 2: Limoni (1.65) 3: Pesche (1,75) 4: Arance (1.99) 5: ciliegie (2.25) Anche se i nomi chiave compaiono nella matrice, i valori restano indietro nella struttura. Dopo la chiamata StructSort (), i loop codice tramite keyArray, che contiene i nomi ordinati chiave. Durante questo ciclo, keyArray [i] contiene il nome della chiave corrente, che a sua volta può essere usato per fornire il nome della chiave per la struttura FruitCosts. Se segui il motore di elaborazione ColdFusion lungo step-by-step, la risoluzione di questo riferimento è il seguente: Fase 1: # FruitCosts [keyArray [i]] # Step 2: # FruitCosts [keyArray [1]] # Step 3: # FruitCosts [ "Mele"] # Risultato: 1,50 Ma cosa succede se si desidera ordinare da una chiave in una struttura nidificata? Abbiamo modificato la struttura FruitCosts dalla precedente in questo articolo utilizzando il seguente codice: Ogni elemento della struttura FruitCosts è una sottostruttura che contiene due chiavi: "LB" (prezzo per libbra) e "sacco" (prezzo per sacco). Quindi, ora che hai questo insieme di strutture nidificate, come si fa a ordinare per prezzo per libbra? Un attributo quarto StructSort () descrive un punto percorso per il valore di ordinamento, come illustrato nel codice.
La cosa buona di questo metodo è che si può facilmente passare ad ordinamento per prezzo per sacco, come illustrato nel codice.
È possibile ordinare da un tasto qualsiasi numero di livelli profondi con l'aggiunta di elementi alla dot percorso: Essere consapevoli del fatto che, se la sottochiave specificata non esiste per ogni elemento di livello nella struttura principale, ColdFusion genera un errore. un articolo presentato da Amanda Baker Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni. Importante: Questo articolo è "Come notazione crea automaticamente una struttura nidificata" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.
|
|||||
| Online: 306 users browsing the articles directory |
|
|