首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无限气体需求:编写一个关于Remix的简单合同

无限气体需求:编写一个关于Remix的简单合同
EN

Ethereum用户
提问于 2018-11-05 23:51:17
回答 1查看 2.8K关注 0票数 1

我试图编写一份关于Remix的简单合同,但我收到以下3条警告:

  1. 函数Greeter.hello()的气体需求量高:无穷大。如果某项功能的气体需要量高于区块气体限值,则不能执行。请避免函数或操作中的循环修改存储的大区域(这包括清除或复制存储中的数组)。
  2. Greeter.set(弦)函数的气体需求量高:无限大。如果某项功能的气体需要量高于区块气体限值,则不能执行。请避免函数或操作中的循环修改存储的大区域(这包括清除或复制存储中的数组)。
  3. 函数Greeter.yourName()的气体需求量高:无穷大。如果某项功能的气体需要量高于区块气体限值,则不能执行。请避免函数或操作中的循环修改存储的大区域(这包括清除或复制存储中的数组)。

合同内容如下:

代码语言:javascript
复制
pragma solidity ^0.4.22;

contract Greeter {
   string public yourName;
   constructor() public{
      yourName = "World";
   }
   function (string name) public {
      yourName = name;
   }
   function hello( ) public constant returns (string) {
      return yourName;
   }
}

一些人请指导我如何删除上述警告。

祖尔菲。

EN

回答 1

Ethereum用户

发布于 2018-11-06 00:03:28

所有这些警告都是正确的。你问过如何“移除”它们,但我认为这是错误的方法。它们的存在是因为你在操纵字符串,而且也无法知道这些字符串的长度,所以不可能知道操纵这些字符串的气体消耗了多少。

您可以使用字符串以外的其他东西,例如bytes32 (大致可以用来存储-到32字节的字符串),但是为什么呢?如果理由只是“沉默警告”,我认为你可能误解了警告的目的和价值。

票数 3
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/61805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档