Syntax 在ColdFusion中使用带命名参数的冒号

Syntax 在ColdFusion中使用带命名参数的冒号,syntax,coldfusion,Syntax,Coldfusion,我在录音中看到了这个代码示例,想知道冒号语法的作用。我搜索了文档,但找不到任何相关信息: weather.subscribe(观察者:应用程序。观察者。当前条件) 我知道我们可以在CF9中使用冒号来表示三元运算符: result=(条件)?真:假 但在本例中,它似乎被用来提供命名参数;那它在那里干什么呢?在我看来像是打字错误。在ColdFusion中,您将使用等号(=)而不是冒号来使用命名参数 你的例子是: weather.subscribe(observer = application.obs

我在录音中看到了这个代码示例,想知道冒号语法的作用。我搜索了文档,但找不到任何相关信息:

weather.subscribe(观察者:应用程序。观察者。当前条件)

我知道我们可以在CF9中使用冒号来表示三元运算符:

result=(条件)?真:假


但在本例中,它似乎被用来提供命名参数;那它在那里干什么呢?

在我看来像是打字错误。在ColdFusion中,您将使用等号(
=
)而不是冒号来使用命名参数

你的例子是:

weather.subscribe(observer = application.observers.currentConditions);
我看了这个 眨眼,眨眼。。。那不可能是对的!你不能用冒号来表示 命名参数!呃,可以吗??嗯,显然你可以


是的,您可以同时使用这两个选项。我认为这是一个偏好的问题。你甚至可以混合

试试看,模拟一些测试功能:

<cffunction name="testFunction" returntype="void" hint="I just spit out the arguments I get">
    <cfdump var="#arguments#" label="arguments">
</cffunction>

<cfset testFunction(arg1:"hello",arg2:"world") />
<cfset testFunction(arg1="hello",arg2="world") />
<cfset testFunction(arg1:"I can mix",arg2="my named argument syntax") /> 


就我个人而言,我更喜欢=作为命名参数。您可能还注意到,如果您在ColdFusion开发中使用IntelliJ IDEA,他们可能无法识别冒号语法,因此为了更好地解析,您可能希望使用=语法。我不能为其他IDE说话

@Sean Coyne,我不认为这是一个打字错误。有几个例子使用相同的格式,有人评论说这是一件很酷的事情(冒号可以工作)。我想理解的是语法的意思。这只是说
arg=myValue
的另一种方式吗?我在CF中见过冒号用于命名arg,但是的,=是每个人都使用的。@亨利,所以这只是说
doSomething(myArg=myValue)
的另一种方式吗?谁不相信,你还是肖恩?;)哎呀,这实际上就是“引用”的风格,是吗?它与普通文本几乎无法区分:/难怪我眨了两下…@Leigh,我想你的LCD有一些颜色校准问题:D--在我的一台笔记本电脑上,我也发现很难看到背景颜色。@Mohmamad-Duh!你是对的。在另一台机器上,它的发音要明显得多。在这个问题上,我只有努力眯着眼睛才能看到;)CFEclipse和intellijidea没有相同的bug,我怀疑CFBuilder也没有。