Como a notação de ponto cria automaticamente uma estrutura aninhadaAté agora, você criou estruturas somente usando StructNew (). Você também pode criar estruturas apenas usando a notação de ponto, como segue:
Essa linha cria uma estrutura chamada aNewStruct com uma estrutura denominada somekey que tem um elemento chamado SomeValue com um valor de 1. Observe que os nomes de todas as estruturas recém-criadas e as teclas são todas as letras maiúsculas, independentemente da capitalização que você usa no código. Tal como conveniente que este método possa parecer, ele tem um inconveniente. Considere o seguinte trecho: Depois de executar o trecho anterior, duas novas chaves, denominada MyKey e yourKey, são criados. Suponha que você agora tentar chamar o trecho a seguir para criar uma estrutura aninhada chamado MyKey: Se a linha anterior tinha trabalhado, teria substituído o valor anterior de simples myKey com uma estrutura denominada MyKey. Felizmente, porém, a tentativa de substituir uma peça simples, com uma estrutura gera um erro no ColdFusion MX. Para fazer face a limitação na criação de estrutura de chaves usando esse método. ColdFusion MX pode criar estruturas aninhadas apenas até três níveis de profundidade em uma única chamada, como neste exemplo: A tentativa de criar uma chave de mais de três níveis de profundidade dá resultados inesperados. ColdFusion ignora todos, mas os últimos três chaves. Executando o seguinte código, por exemplo, saídas de "algum valor":
Você pode, no entanto, criar estruturas aninhadas tão profundamente como você quiser, desde que você não tenta ir mais de três níveis mais profundos do que existe atualmente. Às vezes, os dados só é útil se for classificado em uma ordem específica. Embora isto é fácil de fazer com os dados tabulares de um banco de dados, classificação de dados em uma estrutura leva um pouco mais de compreensão e esforço. Diga que você tem uma estrutura contendo os preços por quilo de frutas diferentes, como segue: Você pode fazer loop sobre esses preços e enviá-los usando o código.
O problema aqui é que as estruturas não têm qualquer tipo de ordem inerente. Estrutura de chaves são armazenados em uma ordem interna que só ColdFusion Server entende, e se passar sobre a estrutura, que é a ordem que você vê. A ordem na qual você insere as chaves não importa mesmo. StructSort () retorna uma matriz de nomes-chave classificadas por seus valores (não os seus nomes-chave). O código usa StructSort () para colocar a fruta custos na ordem.
A maior diferença entre os códigos é a abordagem que cada um leva para fazer loop para a estrutura. Na primeira, acabamos de usar um loop coleção padrão, baseando-se em qualquer ordem ColdFusion armazenado dentro da estrutura em um segundo, chamamos StructSort () primeiro, que retorna uma matriz de nomes-chave que olhar como se segue: 1: Maçãs 2: Limões 3: Peaches 4: Laranjas 5: Cerejas Estes elementos ainda não parecem estar em qualquer ordem especial, mas olha para os seguintes preços associados a cada elemento (apesar de os valores entre parênteses não fazem parte de fato da matriz): 1: Maçãs (1,50) 2: Limões (1,65) 3: Peaches (1,75) 4: laranjas (1,99) 5: Cherries (2,25) Embora os nomes-chave aparecem na matriz, os valores permanecem em volta da estrutura. Depois de chamar StructSort (), o código percorre keyArray, que contém os nomes das chaves. Durante este ciclo, keyArray [i] contém o nome da chave atual, que por sua vez pode ser usado para fornecer o nome da chave para a estrutura FruitCosts. Se você seguir o mecanismo de processamento de ColdFusion longo passo-a-passo, a resolução desta referência é a seguinte: Passo 1: # FruitCosts [keyArray [i]] # Passo 2: # FruitCosts [keyArray [1]] # Passo 3: # FruitCosts [ "Apples"] # Resultado: 1,50 Mas o que se pretende classificar por uma chave em uma estrutura aninhada? Nós modificou a estrutura da FruitCosts anteriormente no artigo, usando o seguinte código: Cada elemento da estrutura FruitCosts é uma estrutura contendo duas chaves: "LB" (preço por quilo) e "saco" (preço por saca). Portanto, agora que você tem esse conjunto de estruturas aninhadas, como você classificar por preço por quilo? Um atributo quarto de StructSort () descreve um ponto caminho para o valor de classificação, conforme mostrado no código.
A coisa boa sobre este método é que você pode facilmente mudar para a classificação por preço por saca, conforme mostrado no código.
Você pode classificar por um número qualquer tecla de níveis de profundidade por adicionar elementos ao ponto caminho: Esteja ciente de que, se a subchave especificada não existe para cada elemento de nível superior na estrutura principal, ColdFusion gera um erro. um artigo apresentado por Amanda Barreto Isenção de responsabilidade:O nosso site não se responsabiliza pelo conteúdo deste artigo. Webarticles é uma fonte de informação livre. Importante: Este artigo "Como a notação de ponto cria automaticamente uma estrutura aninhada" foi traduzida por um software automático. Nós sentimos muito por quaisquer erros de ortografia que pode ter ocorrido. Obrigado pela sua compreensão.
|
|||||
| Online: 509 users browsing the articles directory |
|
|