Coldfusion 可选参数-传递的参数不是整数
我相信这一定是一个简单的,但似乎没有多少调整有效(我希望我没有误解这里的基本面!) 我在CFC中定义了一个函数,如下所示:Coldfusion 可选参数-传递的参数不是整数,coldfusion,Coldfusion,我相信这一定是一个简单的,但似乎没有多少调整有效(我希望我没有误解这里的基本面!) 我在CFC中定义了一个函数,如下所示: public void function createWidget( required any event , required String widgetType , String elementId="" , integer refreshRate="0" , required integer rowN
public void function createWidget(
required any event
, required String widgetType
, String elementId=""
, integer refreshRate="0"
, required integer rowNumber
, required integer colNumber
, required integer width
, required integer height
, String title=""
, String bgColour="orange" ){
如您所见,有些参数是必需的,有些参数不是必需的,我已经为它们提供了默认值(例如integer refreshRate=“0”
)
现在我使用命名参数调用此函数,试图利用可选参数,例如:
createWidget( event:event
, widgetType:'blank'
, rowNumber:1
, colNumber:1
, width:2
, height:1
, title:'Empty Widget' )
因此,在本例中,我没有为refreshRate
提供任何值,但我得到了错误:
The REFRESHRATE argument passed to the createWidget function is not of type integer.
我还尝试更新refreshRate
的默认值以删除引号(integer refreshRate=0
),但仍然存在完全相同的问题
谁能看出我做错了什么
更新
我还尝试实际传入变量refreshRate(向函数调用添加
refreshRate:0
),但仍然得到相同的错误 好的,显然将参数切换为“numeric
”类型可以解决这个问题-不确定整数为什么不被接受?这是一种合法的CF类型,对吗?不,只支持数字。更详细地说,大约有十四种。所有其他值都被视为组件的“名称”。错误的真正含义是CF认为Integer
是组件的名称,并拒绝该参数,因为它不是Integer.cfc
的实例。