和我一起承担这个...
说我有一个现有的结构:
<cfset struct1 = {key1 = "foo", key2 = "bar"}>
......而我想添加一些键/值对。 典型的做法是这样的:
<cfset struct1.key3 = "baz">
<cfset struct1.key4 = "qux">
<cfset struct1.key5 = "quux">
或者,我可以用structAppend():
<cfset struct2 = {key3 = "baz", key4 = "qux", key5 = "quux"}>
<cfset structAppend(struct1, struct2, false)>
......它有让我来控制已有的按键是否被覆盖的额外的奖励。 它的缺点,我认为,是它使用更多的内存,因为新的键/值对将最终存在于两个不同的地方。 但是,如果我这样做,而不是:
<cfset structAppend(struct1, {key3 = "baz", key4 = "qux", key5 = "quux"})>
我已经消除了额外的内存使用情况? 或者,将第二个参数的结构继续在一些秘密地点存在的功能,在这种情况下,我现在在一组冗余键/值的浪费内存已经executed--后,我甚至不能访问。
虽然我的主要关注的是内存使用,它可能不会伤害知道,如果最后的办法有其他缺点,如处理开销,相比第一。 我认识到,在任何我提出的方法之间的资源使用的差异在一个单一的执行情况将不会显著。 我想在更大的规模,用大量的数据和/或多次重复。
我目前在CF 9.0.1,如果该事项。