gpt4 book ai didi

arrays - ColdFusion 结构中的数组键

转载 作者:行者123 更新时间:2023-12-02 03:52:35 24 4
gpt4 key购买 nike

在 ColdFusion 结构(数组)中创建键的正确语法是什么?最好在 cfscript 标签中。

为了更清楚地了解我正在尝试做什么,我认为可能是这样的:

StructInsert(account[i], "child[numChildren]", z);

其中“child”应该是一个数组,而 numChildren 是循环中的计数器。

显然这是行不通的。它只是给我一个错误,说键“child[numChildren]”已经存在。

最佳答案

你说的“帐户”结构称为“子”,它是一个数组。这没有任何意义。如果“child”是数组,则它不能是结构体。如果它是一个结构体,它就不能是一个数组。数组可以包含结构,结构也可以包含数组。

结构是一个映射或哈希,换句话说,它由名称值对组成。数组是值的集合或列表。您可以循环它们,或通过它们的数字索引访问它们。

让我们将 account 设为结构体,将 child 设为数组。

<cfset Account = structNew() />
<cfset Account.Child = ArrayNew(1) />

Account 是一个结构体,因此您可以在其上使用结构体函数(structKeyExists、structInsert)。
Account.Child 是一个数组,因此您可以在其上使用数组函数(arrayAppend 等)。 Account.Child 作为一个数组,可以包含条目中的几乎任何值,包括复杂值。因此,让我们将 Account.Child 设为一个结构数组。

假设示例中的 z 是一个如下所示的结构:

<cfset z = structNew() />
<cfset z.id = 1 />
<cfset z.name = "James" />

您可以将其添加到 Account.Child 中,如下所示:

<cfset ArrayAppend(account.child,z) />

或者,您可以直接通过索引执行此操作,如下所示:

<cfset account.child[numChildren] = z />
现在。假设您希望将 Account 保留为一个结构体,但您希望该结构体中的每个子级都有 1 个键,而不是使用数组。您可以使用动态 key 来做到这一点,如下所示:

<cfset Account["child_#numChildren#"] = z />

仅供引用,structInsert 通常是一个不必要的函数。

关于arrays - ColdFusion 结构中的数组键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3282189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com