Default value required for '%s' (Delphi)导致这个错误的原因及解决方法
2023-09-11 14:15:13 时间
今天在调试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的规则倒是一模一样
相关文章
- [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket错误解决方法总结
- 登陆FTP服务器提示530 Login authentication failed 错误的解决方法
- SSH登录时“no matching host key type found. Their offer: ssh-rsa,ssh-dss“的错误解决方法
- WIN7可中SQL SERVER 2008安装时出现不能在控件上调用 Invoke 或 BeginInvoke错误(终极解决方法)
- Android中java.lang.NoClassDefFoundError: Failed resolution of: Ljava/time/LocalDate;错误的原因和解决方法
- Jsp中无法使用EL表达式的解决方法错误Can not find the tag library descriptor for http://java.sun.com/jsp/jstl/core
- Eclipse 出现Some sites could not be found. See the error log for more detail.错误 解决方法
- 使用CMake编译Libigl错误问题解决方法
- mkdir()提示No such file or directory错误的解决方法
- Windows提示 错误: RPC 服务器不可用 解决方法。
- [java]Eclipse 安装错误的解决方法 及JDK下的ini修改
- 《构建高可用Linux服务器 第3版》—— 2.2 安装系统时容易发生的错误描述与处理方法
- sqlserver2008查看表记录或者修改存储过程出现目录名无效错误解决方法
- 错误Name node is in safe mode的解决方法 (转)
- ORA-12560: TNS: 协议适配器错误的解决方法
- android 错误解决方法 ---积累中
- git clone 出现fatal: unable to access https://github 类错误解决方法