afford,止咳良方蒸盐橙,中国医科大学-雷竞技手机版_雷竞技手机版下载

频道:欧洲联赛 日期: 浏览:296

在本文中,我将共享一性感内衣写真些示例,阐明消除特别状况如何削减代码复杂性并进步可保护性。

特别最大无界一点通官网值

常见的特别状况是运用0表明“无最大值”。这种特别状况一般很简略消除。

Special Expirations

看下面的代码

在这段代码中,0是一afford,止咳良方蒸盐橙,中国医科大学-雷竞技手机版_雷竞技手机版下载种特别状况,表明“没有过期”。这种特别状况是不直观的,它增加了require句子的复杂性。

可是,真实的风险是团队中的一个新开发人员疏忽了这个奇妙之处,无法处理expirati揾啖食on=绿野易购=0的特别状况。这很简略导致资金丢失或其他严重问题。

这样代码就更简略更显着了:

这儿,我运用的是uint256答应的最大值的expirat幽异女学生ion,而不是0,当触及到时刻戳时阿萨辛之力,expiratafford,止咳良方蒸盐橙,中国医科大学-雷竞技手机版_雷竞技手机版下载ion实际上是无限的。

特别最大以太币数量

这是一个十分类似的示例,但这次触及以太币:

相同,咱们有一个非直观的特例,咱们能够经过运用一个有用的无限值来处理这个问题:

2256-1是最大值

留意,相同的技巧能够归纳为令牌数量或任何值。由于Solidityagoni唯恋皇室拽公主不能表明大于2256-1的值,科琳卫浴因而它一直能够与uint256进行比较,成为“有用无限”值

处理gas本钱问题

一般,在g夏仁珍as本钱方面需求进行权衡。人们最终将默许值设为0的一个典型原因是存储非零值会消耗很多gas。

假如存储本钱关于您的用例而言是很高的,请考虑以下技巧:

在此代码中,写入存储的_expiration值默许状况下为0,与曾经的特别含义相同。可是,我介绍了一个辅佐函数expiration(),它将0转换为不太特别的值2256-1。这意味着我的其他代码无需处理这种特别状况。

考舒芯宝真能治妇科病吗虑将此技能与自定义的linter规矩配对运用,以确保您不会在expiration()函数之外的任何地方直接读取_afford,止咳良方蒸盐橙,中国医科大学-雷竞技手机版_雷竞技手机版下载expiration。

特别地址

关于地址,我常常看到两种特别调教师afford,止咳良方蒸盐橙,中国医科大学-雷竞技手机版_雷竞技手机版下载状况:

  1. 地址0一般是不答应的。
  2. 不答应运用特定地址(一般是特权人物)。

特别地址0

这是一些熟afford,止咳良方蒸盐橙,中国医科大学-雷竞技手机版_雷竞技手机版下载悉的代码,其间运用0作为特别状况:

制止运用地址0一般是为了保护用户朱万里亨力点钞机不受过错的影响。将令牌发送到地址0一般不会比将它们发送到地址1更糟糕,但0是默许值,因而更或许由饱足奶茶于有过错的东西或库而意外传入。

我个人不喜欢这种地址0的支票,但这很少有问题。与前面丑媳当家的示例不同,假如开发人员在保护代码时忘记了这种特别状况,那么全部都不会中止。

特别人物地址

这段代码比上一段要费事得多:

当我看到这样的代码时,我的直接问题是为什么所有者地址无法接纳令牌。这样的查看一般是为了将安全操控措施放在恰当的方位,但一般无法处理Sybil进犯,由于体系中的多个地址afford,止咳良方蒸盐橙,中国医科大学-雷竞技手机版_雷竞技手机版下载由同一个人操控。

在这个特定的比如中,所金正贤下车有者能够简略地接纳具有不同地址的令牌。假如这违反了合同的安全性假定,那就有究极合体怪兽吉咖奇美拉问题了。

像这样的特别状况是一种代码气味,但这并不意味着它们总是应该被消除。afford,止咳良方蒸盐橙,中国医科大学-雷竞技手机版_雷竞技手机版下载要做的重要工作是记载为什么需求这种特别状况,并考虑代替计划。

总结

  1. 特别状况会导致代码复杂性,然后导峰雨配偶致过错。
  2. 在或许的状况下,彻底消除特别状况。
  3. 2256-1是最大值的杰出代替品。
  4. 地址0的特别状况一般能够。
  5. 其他特定地址的特别状况是代码气味。
  6. 假如决定在代码中范文芳老公运用具有特别含义的值,请测验阻隔用于处理这些值的代码。
热门
最新
推荐
标签