以下两个区块之间是否存在逻辑区别?还有一种比另一种形式更正确吗?他们俩都居住在自己的功能中 - 我在这里省略了。

    <cfset local.result = 1 />
    <cfset local.i = 1 />
    <cfloop from="1" to="5" index="i">
        <cfset result = result * i />
    </cfloop>

    <cfset local.result = 1 />
    <cfset local.i = 1 />
    <cfloop from="1" to="5" index="i">
        <cfset local.result = local.result * local.i />
    </cfloop>
有帮助吗?

解决方案

是的。在您的第二个示例中,您做出完全相同的结果;但是,您通过明确识别要修改的范围来提高可读性,这是一件好事。

ColdFusion,将首先搜索本地范围,因此,您没有为ColdFusion节省太多处理;但是,该代码现在更干净。如果结果存在于客户端或Cookie范围中,您将保存ColdFusion,必须首先评估其他四到五个示波器的工作。

我曾经使用过“变量结果= 0;”将变量定位到函数的样式,但是,我现在明确标识所有范围,以帮助确保我正确范围范围范围,并使代码更易于理解他人。

总而言之,代码与机器完全相同,但现在对人类来说更容易理解。

其他提示

一个建议...更改:

<cfset local.i = 1 />
<cfloop from="1" to="5" index="i">

<cfloop from="1" to="5" index="local.i">

一条少的代码,甚至更清楚发生了什么。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top