您的位置:首页 > 娱乐 > 明星 > icp备案号查询官网_深汕特别合作区房价最新消息_自动点击器安卓_有哪些搜索引擎

icp备案号查询官网_深汕特别合作区房价最新消息_自动点击器安卓_有哪些搜索引擎

2025/4/28 8:26:33 来源:https://blog.csdn.net/2301_77485708/article/details/147034534  浏览:    关键词:icp备案号查询官网_深汕特别合作区房价最新消息_自动点击器安卓_有哪些搜索引擎
icp备案号查询官网_深汕特别合作区房价最新消息_自动点击器安卓_有哪些搜索引擎

文章目录

  • 表达式与控制结构
    • 控制结构
    • 函数调用
      • 内部函数调用
      • 外部函数调用
      • 使用具名参数的函数调用
      • 函数定义中省略的名称
    • 通过 new 创建合约
      • 带有 Salt 的合约创建 / create2
    • 表达式的求值顺序

在这里插入图片描述

表达式与控制结构

控制结构

Solidity 提供了大多数在使用大括号的语言中常见的控制结构,包括:if、else、while、do、for、break、continue、return,其语义与 C 或 JavaScript 中的语义相同。

Solidity 还支持异常处理形式的 try/catch 语句,但仅适用于外部函数调用和合约创建调用;还可以使用 revert 语句创建错误。

条件语句中的括号不能省略,但单条语句体周围的大括号可以省略。

注意:Solidity 中没有像 C 和 JavaScript 那样从非布尔类型到布尔类型的类型转换,因此 if (1) { … } 在 Solidity 中是无效的。

函数调用

内部函数调用

当前合约的函数可以直接(“内部地”)调用,也可以递归调用,如下面这个没有意义的例子所示:

// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.22 <0.9.0;// 这将触发一个警告
contract C {function g(uint a) public pure returns (uint ret) { return a + f(); }function f() internal pure returns (uint ret) { return g(7) + f(); }
}

这些函数调用在 EVM 中会被转换为简单的跳转。这意味着当前的内存不会被清除,即向内部调用的函数传递内存引用非常高效。

注意:只有同一个合约实例的函数可以进行内部调用;我们应避免过度使用递归,因为每一次内部函数调用至少会占用一个堆栈槽位,而总共只有 1024 个可用槽位。

外部函数调用

函数也可以使用 this.g(8);c.g(2); 的方式进行调用,其中 c 是一个合约实例,g 是属于 c 的一个函数。通过这两种方式调用函数 g 都会被视为“外部”调用,使用消息调用(message

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com