Solidity支持条件语句,让程序可以根据条件执行不同的操作.条件语句包括: if if...else if...else if 语法 if (条件表达式) { 被执行语句(如果条件为真) } 示例 展示if语句用法. pragma solidity ^0.5.0; contract SolidityTest { uint storedData; constructor() public { storedData = 10; } function getResult() public view…
与其他语言类似,Solidity语言支持循环结构,Solidity提供以下循环语句. while do ... while for 循环控制语句:break.continue. Solidity – while循环 语法 Solidity 中, while循环的语法如下: while (表达式) { 被执行语句(如果表示为真) } 示例 pragma solidity ^0.5.0; contract SolidityTest { uint storedData; constructor() p…
Solidity – 算术运算符 Solidity 支持的算术运算符,如下表所示: 假设变量A的值为10,变量B的值为20. 序号 运算符与描述 1 + (加)求和例: A + B = 30 2 – (减)相减例: A – B = -10 3 * (乘)相乘例: A * B = 200 4 / (除)相除例: B / A = 2 5 % (取模)取模运算例: B % A = 0 6 ++ (递增)递增例: A++ = 11 7 — (递减)递减例: A– = 9 示例 下面的代码展示了如何使用算…
Solidity 支持三种类型的变量: 状态变量 – 变量值永久保存在合约存储空间中的变量. 局部变量 – 变量值仅在函数执行过程中有效的变量,函数退出后,变量无效. 全局变量 – 保存在全局命名空间,用于获取区块链相关信息的特殊变量. Solidity 是一种静态类型语言,这意味着需要在声明期间指定变量类型.每个变量声明时,都有一个基于其类型的默认值.没有undefined或null的概念. 状态变量 变量值永久保存在合约存储空间中的变量. pragma solidity ^0.5.0; co…
一个 Solidity 源文件可以包含任意数量的合约定义.import指令和pragma指令. 让我们从一个简单的 Solidity 源程序开始.下面是一个 Solidity 源文件的例子: pragma solidity >=0.4.0 <0.6.0; contract SimpleStorage { uint storedData; function set(uint x) public { storedData = x; } function get() public view retu…
Solidity语言是一种面向合约的高级编程语言,用于在以太坊区块链网络上实现智能合约.Solidity语言深受c++.Python和JavaScript的影响,针对以太坊(Ethereum)虚拟机(EVM)设计. Solidity语言是静态类型语言,支持继承.库和复杂的用户定义类型. 可以使用Solidity语言创建区块链上运行的投票.众筹.钱包等各种类型的智能合约. 以太坊/Ethereum是什么? 以太坊是一个去中心化的,运行智能合约的区块链平台. 以太坊/Ethereum虚拟机(EVM)…
智能合约的优点 与传统合同相比,智能合约有一些显著优点: 不需要中间人 费用低 代码就是规则 区块链网络中有多个备份,不用担心丢失 避免人工错误 无需信任,就可履行协议 匿名履行协议 以太坊(Ethereum) – 智能合约开发概述 支持智能合约的区块链 虽然以太坊(Ethereum)是最流行支持智能合约的区块链平台,但它并不是唯一支持智能合约的平台. 超级账本(Hyperledger) 是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目.通过创建分布式账本的公开标准,实…
作用: 外部账号 – 用户使用的账号,账户余额. 合约账号 – 智能合约使用的账号,每个智能合约都有一个账号,内存和账户余额 以太坊(Ethereum)网络中,有2种账号: 外部账号 – 用户使用的账号 合约账号 – 智能合约使用的账号,每个智能合约都有一个账号 这些账号,都被称为状态对象/state object,构成了以太坊网络的状态.外部账号的状态是账户余额,合约账号的状态是内存与账户余额. 外部账号是用户账号,例如,普通用户.矿工等使用的账号. 合约账号是区块链网络中,位于特定地址(账号…
作用:执行智能合约代码的引擎 以太坊(Ethereum)虚拟机是执行智能合约代码的引擎. 可以用某种语言,例如Solidity语言,开发智能合约程序,编译成以太坊(Ethereum)虚拟机支持的字节码/bytecode,然后该程序就可以在虚拟机中执行了. 以太坊(Ethereum)虚拟机可以被看做是一个大型的分布式计算机. 以太坊(Ethereum)以虚拟机为核心,支持开发各种应用程序,来充分挖掘区块链技术的应用场景和潜力. 以太坊(Ethereum)网络中运行的应用,被称为分布式应用 – DA…
以太坊(Ethereum)与其他公共区块链一样,使用工作量证明机制确保区块链网络正常运行. 矿工进行工作量证明计算,即挖矿,来选择区块,写入区块链,确认交易. 交易过程如下图所示: 从技术角度来看,以太坊使用的工作量证明算法称为Ethash,这是一种哈希算法,灵感来自Dagger-Hashimoto算法.…