[英]How to take input from user in structure in Solidity?
pragma solidity >=0.7.0<0.9.0;
contract emp
{
struct Details
{
string name;
uint id;
string post;
}
Details dtl;
function setDetails(string a, uint b, string c) public
{
dtl=Details('a' , b , 'c');
}
function output() public view returns (string memory,uint,string memory)
{
return (dtl.name, dtl.id, dtl.post);
}
}
不知道为什么会显示此错误,请告诉我哪里出错了。
从坚固性:
TypeError: Data location must be "memory" or "calldata" for parameter in function, but none was given.
--> contracts/structure.sol:12:25:
|
12 | function setDetails(string a, uint b, string c) public**
~~~~~~~~ ~~~~~~~~
错误消息告诉您setDetails()
function 的输入参数的数据位置必须是“memory”或“calldata”,但均未指定。
为了解决这个问题,您需要通过在变量类型前添加 memory 关键字来指定输入参数的数据位置。 例如:
function setDetails(string memory a, uint b, string memory c) public
另一件事你做错了,在这一行dtl=Details('a', b, 'c');
您使用单引号 ('') 将值分配给不正确的变量。 您应该使用双引号 ("") 将值分配给变量。 给变量赋值的正确方法是这样的:
dtl=Details(a , b , c);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.