gpt4 book ai didi

coldfusion - 函数调用中带有命名参数和隐式结构创建的奇怪错误

转载 作者:行者123 更新时间:2023-12-04 08:50:13 25 4
gpt4 key购买 nike

这是我最近在 CF9 中遇到的一个非常奇怪的错误。任何人都知道它为什么会发生,如果我做错了什么,或者有可用的修补程序。看下面的代码。我们取一个字符串,添加一个 A,添加一个 B,然后尝试添加一个 C……但我们得到的结果是“ababc”。预期结果是“abc”。该错误仅在您执行命名参数和参数传递中的隐式结构和 &= 时发生。函数调用中的运算符。如果不存在这 3 种情况中的任何一种,则不会发生该错误。任何想法为什么?

<cffunction name="test">
<cfargument name="widget">

<cfset var locals = StructNew()>

<cfreturn arguments.widget.value>
</cffunction>

<cfset return = "">
<cfset return &= "a">
<cfset return &= "b">
<cfset return &= test(widget = { value = "c" })>
<cfoutput>#return#</cfoutput>

最佳答案

嗯:你已经在这里回答了你自己的问题:它发生是因为它是一个错误。错误发生。很高兴您花时间向 Adob​​e 提出建议。

至于变通办法,这两个变体工作正常:

<cfset return = "">
<cfset return &= "a">
<cfset return &= "b">
<cfset st = { value = "c" }><!--- refactor where the struct is created --->
<cfset return &= test(widget = st)>
<cfoutput>#return#</cfoutput>

或者:
<cfset return = "">
<cfset return &= "a">
<cfset return &= "b">
<cfset temp = test(widget = { value = "c" })><!--- refactor where the function is called --->
<cfset return &= temp>
<cfoutput>#return#</cfoutput>

你只需要做类似的事情,直到 Adob​​e 开始修复它:-(

关于coldfusion - 函数调用中带有命名参数和隐式结构创建的奇怪错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8482851/

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