我正在 Solidity 中学习以太坊开发,并尝试运行一个简单的 HelloWorld 程序,但遇到了以下错误:
函数中返回参数的数据位置必须是“内存”或“calldata”,但没有给出。
我的代码:
pragma solidity ^0.8.5;
contract HelloWorld {
string private helloMessage = "Hello world";
function getHelloMessage() public view returns (string){
return helloMessage;
}
}
Run Code Online (Sandbox Code Playgroud) int shmget(key_t key, size_t size, int shmflg);
Run Code Online (Sandbox Code Playgroud)
上述函数是根据 man shmget 给出的。man 中给出了第三个参数可用的标志,并且定义良好。但我有时会看到人们使用 0 传递给标志。0是什么意思?我在网上找不到0的含义。
例如wc -l filename会打印出例如“3 文件名”,
而wc -l < filename只会打印出“3”而不考虑“文件名”。
这意味着一定有一些程序通过添加输入重定向“<”来摆脱“文件名”。这也意味着输入重定向以不同的方式处理每个命令;例如“cat filename”会将整个文件名打印到输出,等等。