我在錄製中看到了這個代碼示例,並且想知道冒號語法的作用。我搜索的文檔,但我沒能找到它的任何信息:在ColdFusion中使用帶有命名參數的冒號
weather.subscribe(observer: application.observers.currentConditions);
我知道我們可以用冒號CF9三元運營商:
result = (condition) ? true : false;
但在這種情況看起來像是用來提供命名參數;那麼它在那裏做什麼?
我在錄製中看到了這個代碼示例,並且想知道冒號語法的作用。我搜索的文檔,但我沒能找到它的任何信息:在ColdFusion中使用帶有命名參數的冒號
weather.subscribe(observer: application.observers.currentConditions);
我知道我們可以用冒號CF9三元運營商:
result = (condition) ? true : false;
但在這種情況看起來像是用來提供命名參數;那麼它在那裏做什麼?
<cfset result = obj.func(arg:value,thing:42) />
我看着這個和 去眨眼,眨眼 ...這不可能是正確的!您不能使用冒號命名參數 !呃,你能嗎?那麼,顯然你可以。
http://corfield.org/blog/post.cfm/Learn_something_new_every_day_named_arguments
看起來像我的錯字。在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
CFEclipse沒有IntelliJ IDEA相同的錯誤,我懷疑CFBuilder做。 –
誰不相信呢,你還是肖恩? ;) – Leigh
Yipes,這實際上是SO上的「引用」風格?它幾乎與普通文本沒有區別:/難怪我眨了兩下...... – Leigh
@Leigh,我認爲你的LCD有一些顏色校準問題:D-在我的一臺筆記本電腦上我也很難看到背景顏色。 – Mohamad