You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solidity中getInfo函数返回参数数量不匹配的TypeError问题求助

Solidity返回语句参数数量不匹配错误修复

错误原因

你的getInfo函数声明要返回两个独立的uint和address类型,但return语句直接返回了整个Info结构体实例。Solidity不会自动把结构体拆成多个单独的返回值,所以触发了「返回语句参数数量与声明不匹配」的类型错误。

两种修复方案

方案1:显式返回结构体成员

把结构体里的两个字段分别取出返回,匹配函数声明的返回值数量:

function getInfo(uint _infoid) external view returns (uint, address) {
    Info memory info = infos[_infoid];
    return (info._id, info._add);
}

方案2:修改返回类型为结构体

如果想直接返回整个结构体,调整函数的返回类型为Info即可,这样原return语句就合法了:

function getInfo(uint _infoid) external view returns (Info memory) {
    return infos[_infoid];
}

注:用这个方案的话,调用该函数的外部合约或前端需要支持处理结构体类型的返回值。

内容的提问来源于stack exchange,提问作者ETHERC20

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 23:50:28