在 Solidity 中,使用 if() 和 require() 有什么区别?
In Solidity, what is the difference between using if() and require()?
我可以 运行 在条件 if 语句中编写代码。我还可以在 运行 一些代码之前要求一个条件。它们可以互换吗?或者有什么理由让我选择依赖其中一个而不依赖另一个?
不,它们不可互换。
当 if
条件为假时,执行下一个 condition/block 并且 else 块(如果有)为 运行。标准 if/else 编程逻辑。
require
是错误处理语句。当 require
条件为假时,所有执行停止,事务回滚。
有关 require
的更多信息以及它与其他错误处理函数(例如 assert
和 revert
之间的区别,请参阅错误处理的 Solidity documentation。
我可以 运行 在条件 if 语句中编写代码。我还可以在 运行 一些代码之前要求一个条件。它们可以互换吗?或者有什么理由让我选择依赖其中一个而不依赖另一个?
不,它们不可互换。
当 if
条件为假时,执行下一个 condition/block 并且 else 块(如果有)为 运行。标准 if/else 编程逻辑。
require
是错误处理语句。当 require
条件为假时,所有执行停止,事务回滚。
有关 require
的更多信息以及它与其他错误处理函数(例如 assert
和 revert
之间的区别,请参阅错误处理的 Solidity documentation。