Default value required for '%s' (Delphi)导致这个错误的原因及解决方法
今天在调试DELPHI程序时遇到这样一个错误:
错误代码
[DCC Error] Unit1.pas(80): E2238 Default value required for 'Dataset'
原出错的函数声明:
procedure JsonToClientDataSet(AJson: string; ANodeName:string='DATA'; Dataset: TClientDataSet; );
百思不得其解,百度了一下找到了答案:
导致的原因为:
定义函数时,带有默认值的参数必须出现在参数列表的最右端(后面),任何一个带有默认值的参数右边不允许再出现没有默认值的参数。
也就是必须放在最后面,意思是如果出现了一个带默认值的参数后,那这个参数后面的所有参数都必须带默认值才可以
所以下面这样的写法才是正确的:
procedure JsonToClientDataSet(AJson: string; Dataset: TClientDataSet; ANodeName:string='DATA');
procedure JsonToClientDataSet(AJson: string; ANodeName:string='DATA');
如果有两个参数都应具有默认值,或具有默认值的参数不是最后一个参数,则应采用下面的写法:
//带默认值的参数只能在后面
function MyFun(a:Integer; b:Integer=1; s:string='aaa'): Integer;
发现这点跟Python的规则倒是一模一样
本文来自博客园,作者:IT情深,转载请注明原文链接:https://www.cnblogs.com/wh445306/p/16751929.html
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?