当前位置: 首页 > news >正文

南通公司做网站无人在线完整免费高清观看

南通公司做网站,无人在线完整免费高清观看,宝安网站设计制作,天津搜索引擎推广系统目录 函数类型 函数类型 solidity官方文档里把函数归到数值类型 函数类型是一种表示函数的类型。可以将一个函数赋值给另一个函数类型的变量#xff0c; 也可以将一个函数作为参数进行传递#xff0c;还能在函数调用中返回函数类型变量。 函数类型有两类#xff1a;- 内部 也可以将一个函数作为参数进行传递还能在函数调用中返回函数类型变量。 函数类型有两类- 内部internal 函数和 外部external 函数 1. 内部函数只能在当前合约内被调用更具体来说 在当前代码块内包括内部库函数和继承的函数中 因为它们不能在当前合约上下文的外部被执行。 调用一个内部函数是通过跳转到它的入口标签来实现的 就像在当前合约的内部调用一个函数。 2.外部函数由一个地址和一个函数签名组成可以通过外部函数调用传递或者返回 函数形式 function function name(parameter types) {internal|external|public|private} [pure|view|payable] [returns (return types)] 看着些复杂咱们从前往后一个一个看方括号中的是可写可不写的关键字 function声明函数时的固定用法想写函数就要以function关键字开头。 function name函数名。 (parameter types)圆括号里写函数的参数也就是要输入到函数的变量类型和名字。 {internal|external|public|private}函数可见性说明符一共4种。没标明函数类型的默认public。合约之外的函数即自由函数始终具有隐含internal可见性。 public: 内部外部均可见。private: 只能从本合约内部访问继承的合约也不能用。external: 只能从合约外部访问但是可以用this.f()来调用f是函数名。internal: 只能从合约内部访问继承的合约可以用。Note 1: 没有标明可见性类型的函数默认为public。 Note 2: public|private|internal 也可用于修饰状态变量。 public变量会自动生成同名的getter函数用于查询数值。 Note 3: 没有标明可见性类型的状态变量默认为internal。 [pure|view|payable]决定函数权限/功能的关键字。payable可支付的很好理解带着它的函数运行的时候可以给合约转入ETH。pure和view的介绍见下一节。 [returns ()]函数返回的变量类型和名称。 使用内部函数类型的例子 // SPDX-License-Identifier: GPL-3.0 pragma solidity 0.4.16 0.9.0;library ArrayUtils {// 内部函数可以在内部库函数中使用因为它们将是同一代码上下文的一部分function map(uint[] memory self, function (uint) pure returns (uint) f)internalpurereturns (uint[] memory r){r new uint[](self.length);for (uint i 0; i self.length; i) {r[i] f(self[i]);}}function reduce(uint[] memory self,function (uint, uint) pure returns (uint) f)internalpurereturns (uint r){r self[0];for (uint i 1; i self.length; i) {r f(r, self[i]);}}function range(uint length) internal pure returns (uint[] memory r) {r new uint[](length);for (uint i 0; i r.length; i) {r[i] i;}} }contract Pyramid {using ArrayUtils for *;function pyramid(uint l) public pure returns (uint) {return ArrayUtils.range(l).map(square).reduce(sum);}function square(uint x) internal pure returns (uint) {return x * x;}function sum(uint x, uint y) internal pure returns (uint) {return x y;} } 使用外部函数类型的例子 // SPDX-License-Identifier: GPL-3.0 pragma solidity 0.4.22 0.9.0;contract Oracle {struct Request {bytes data;function(uint) external callback;}Request[] private requests;event NewRequest(uint);function query(bytes memory data, function(uint) external callback) public {requests.push(Request(data, callback));emit NewRequest(requests.length - 1);}function reply(uint requestID, uint response) public {// 这里要检查的是调用返回是否来自可信的来源requests[requestID].callback(response);} }contract OracleUser {Oracle constant private ORACLE_CONST Oracle(address(0x00000000219ab540356cBB839Cbe05303d7705Fa)); // 已知的合约uint private exchangeRate;function buySomething() public {ORACLE_CONST.query(USD, this.oracleResponse);}function oracleResponse(uint response) public {require(msg.sender address(ORACLE_CONST),Only oracle can call this.);exchangeRate response;} } 返回值 return 和 returns ​ Solidity有两个关键字与函数输出相关return和returns他们的区别在于 returns加在函数名后面用于声明返回的变量类型及变量名return用于函数主体中返回指定的变量。 // 返回多个变量function returnMultiple() public pure returns(uint256, bool, uint256[3] memory){return(1, true, [uint256(1),2,5]);}上面这段代码中我们声明了returnMultiple()函数将有多个输出returns(uint256, bool, uint256[3] memory)接着我们在函数主体中用return(1, true, [uint256(1),2,5])确定了返回值。 // SPDX-License-Identifier: MIT pragma solidity ^0.8.21;// 返回多个变量 // 命名式返回 // 解构赋值contract Return {// 返回多个变量function returnMultiple() public pure returns(uint256, bool, uint256[3] memory){return(1, true, [uint256(1),2,5]);}// 命名式返回function returnNamed() public pure returns(uint256 _number, bool _bool, uint256[3] memory _array){_number 2;_bool false; _array [uint256(3),2,1];}// 命名式返回依然支持returnfunction returnNamed2() public pure returns(uint256 _number, bool _bool, uint256[3] memory _array){return(1, true, [uint256(1),2,5]);}// 读取返回值解构式赋值function readReturn() public pure{// 读取全部返回值uint256 _number;bool _bool;bool _bool2;uint256[3] memory _array;(_number, _bool, _array) returnNamed();// 读取部分返回值解构式赋值(, _bool2, ) returnNamed();} }
http://www.zqtcl.cn/news/560849/

相关文章:

  • 廊坊网站推广局域网网站建设的步骤过程
  • 如何在工信部网站注册简易网页设计代码
  • 做石油系统的公司网站做艺术品展览的网站
  • 枣庄公司网站建设珠海蓝迪装饰设计工程有限公司
  • 广州企业网站营销电话成都网站建设制作设计
  • 求个网站带图片素材域名及密码登录域名管理网站
  • 文交所网站开发wordpress页面编辑插件
  • 丹徒网站建设价格做矿产公司的网站
  • 北京的制作网站的公司在哪里软件程序员
  • 企业网站怎么扣费的网站建设合同的性质
  • 聚美优品一个专注于做特价的网站如何制作个人网页兼职
  • 滨州做网站的公司最好wordpress主题
  • 福州网站设计软件公司dw网站开发流程
  • 合肥网站搭建公司哪家好深圳二维码网站建设
  • 东莞微信网站开发免费html模板素材网站
  • 海淀专业企业网站建设青岛平面设计公司
  • 北京正规网站建设比较wordpress cookies因预料之外的输出被阻止
  • 自助微信网站设计什么叫一级域名二级域名
  • 上海 顶尖 网站设计wordpress多站点不同主题
  • asp c 网站开发wordpress 动静分离
  • 服装网站建设规定wordpress禁止自动升级
  • 如何在网站上做社交的链接毕设给学校做网站
  • 网页设计与网站建设指标点您身边的网站建设顾问
  • 个人网站的制作广州网站优化招聘
  • 做网站产生的流量费怎么算软件开发前景和收入
  • 网站空间 .de单页型网站
  • 网站建设com品牌建设的作用
  • 优质作文网站柳州做网站去哪家公司好
  • 呼和浩特网站建设价格网站建设服务器
  • 做的比较好的电商网站西安有那些做网站的公司好