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

wap网站和app的区别php网站后台建设

wap网站和app的区别,php网站后台建设,wordpress 快站,徐州百姓网发布信息1.合约Solidity 中的合约类似于 C 中的类。 合约具有以下属性。Constructor − 使用 constructor 关键字声明的特殊函数,每个合约将执行一次,并在创建合约时调用。State Variables − 每个合约的变量用于存储合约的状态。Functions − 每个合约的函数可以…

1.合约

Solidity 中的合约类似于 C++ 中的类。 合约具有以下属性。

  • Constructor − 使用 constructor 关键字声明的特殊函数,每个合约将执行一次,并在创建合约时调用。

  • State Variables − 每个合约的变量用于存储合约的状态。

  • Functions − 每个合约的函数可以修改状态变量以改变合约的状态。

可见性量词

以下是合约的函数/状态变量的各种可见性量词。

  • external − 外部函数旨在由其他合约调用。 它们不能用于内部呼叫。 要在合约中调用外部函数,需要调用 this.function_name() 。 状态变量不能标记为外部。

  • public − 公共函数/变量可以在外部和内部使用。 对于公共状态变量,Solidity 会自动创建一个 getter 函数。

  • internal − 内部函数/变量只能在内部使用或由派生合约使用。

  • private − 私有函数/变量只能在内部使用,甚至不能在派生合约中使用。

示例

pragma solidity ^0.5.0;contract C {//private state variableuint private data;//public state variableuint public info;//constructorconstructor() public {info = 10;}//private functionfunction increment(uint a) private pure returns(uint) { return a + 1; }//public functionfunction updateData(uint a) public { data = a; }function getData() public view returns(uint) { return data; }function compute(uint a, uint b) internal pure returns (uint) { return a + b; }
}
//External Contract
contract D {function readData() public returns(uint) {C c = new C();c.updateData(7);         return c.getData();}
}
//Derived Contract
contract E is C {uint private result;C private c;constructor() public {c = new C();}  function getComputedResult() public {      result = compute(3, 5); }function getResult() public view returns(uint) { return result; }function getData() public view returns(uint) { return c.info(); }
}

对于 E.getCompulatedResult() 和 E.getResult() 显示 

输出

0: uint256: 8

2.继承

继承是扩展合约功能的一种方式。 Solidity 支持单继承和多重继承。 以下是主要亮点。

  • 派生合约可以访问所有非私有成员,包括内部方法和状态变量。 但使用这个是不允许的。

  • 如果函数签名保持不变,则允许函数重写。 如果输出参数不同,编译将失败。

  • 我们可以使用 super 关键字或使用超级合约名称来调用超级合约的函数。

  • 在多重继承的情况下,使用 super 的函数调用优先考虑最派生的契约。

示例

pragma solidity ^0.5.0;contract C {//private state variableuint private data;//public state variableuint public info;//constructorconstructor() public {info = 10;}//private functionfunction increment(uint a) private pure returns(uint) { return a + 1; }//public functionfunction updateData(uint a) public { data = a; }function getData() public view returns(uint) { return data; }function compute(uint a, uint b) internal pure returns (uint) { return a + b; }
}
//Derived Contract
contract E is C {uint private result;C private c;constructor() public {c = new C();}  function getComputedResult() public {      result = compute(3, 5); }function getResult() public view returns(uint) { return result; }function getData() public view returns(uint) { return c.info(); }
}


3.构造函数

构造函数是使用constructor关键字声明的特殊函数。 它是一个可选函数,用于初始化合约的状态变量。 以下是构造函数的主要特征。

  • 一个合约只能有一个构造函数。

  • 构造函数代码在合约创建时执行一次,用于初始化合约状态。

  • 执行构造函数代码后,最终代码将部署到区块链。 该代码包括公共函数和可通过公共函数访问的代码。 构造函数代码或仅由构造函数使用的任何内部方法不包含在最终代码中。

  • 构造函数可以是公共的,也可以是内部的。

  • 内部构造函数将合约标记为抽象。

  • 如果没有定义构造函数,则合约中存在默认构造函数。

pragma solidity ^0.5.0;contract Test {constructor() public {}
}
  • 如果基础合约有带参数的构造函数,每个派生合约都必须传递它们。

  • 基础构造函数可以直接使用以下方式初始化 −

pragma solidity ^0.5.0;contract Base {uint data;constructor(uint _data) public {data = _data;   }
}
contract Derived is Base (5) {constructor() public {}
}
  • 基本构造函数可以使用以下方式间接初始化 −

pragma solidity ^0.5.0;contract Base {uint data;constructor(uint _data) public {data = _data;   }
}
contract Derived is Base {constructor(uint _info) Base(_info * _info) public {}
}
  • 不允许直接和间接方式初始化基础合约构造函数。

  • 如果派生合约未将参数传递给基础合约构造函数,则派生合约将变得抽象。

http://www.dtcms.com/a/520741.html

相关文章:

  • 舞阳网站建设如何引流被动加好友
  • js wordpress 菜单管理如何给网站做seo优化
  • Nginx server_name 配置详解
  • 做宣传网站网页制作素材去哪找
  • 百度地图网站开发wordpress会员权限
  • 微硕WSF2040 N沟MOSFET:汽车电动尾门“防夹升降核”
  • 网站建设投标书报价表建设电子商务网站的好处
  • 网站建设与开发教学大纲全网商机app招标
  • Less-4 GET-Error based-Double Quotes-String
  • 互斥锁、读写锁、ref()函数使用
  • 2.6、Web漏洞挖掘实战(下):XSS、文件上传与逻辑漏洞深度解析
  • 邢台做网站的公司有那个营销型网站建设营销型
  • 青岛住房和城乡建设厅网站首页iis7.0 asp网站配置
  • vue3表格显示隐藏列全屏拖动功能
  • Git Commit Message 规范:写出清晰、可维护的提交记录
  • Orleans + Kubernetes + Istio 服务网格集成深度解析
  • 51网站怎么打开注册城乡规划师有什么用
  • 相向指针|盛最多水的容器|接雨水|验证回文串
  • Web3j 中使用 Transaction 类进行以太坊交互的核心方法
  • 承德微网站开发怎么弄一个自己的网站
  • web及h5录音wav下载
  • Kotlin 协程中常见的异步返回与控制方式(速览)
  • 做网站还有前景么动漫网页设计报告
  • Maven 多配置文件的使用
  • 【双机位A卷】华为OD笔试之【哈希表】双机位A-跳房子I【Py/Java/C++/C/JS/Go六种语言】【欧弟算法】全网注释最详细分类最全的华子OD真题题解
  • SQL 拼接完全指南
  • 制作的网站wordpress还是自己写
  • 【HLS】Java实现统计HLS的m3u8清单中所有ts切片的视频持续时长
  • 免费网站建设ppt模板下载山西省建设银行网站首页
  • 增城网站建设价格郑州seo