智能合约是编程在区块链上的汇编语言。通常人们不会本人写字节码,然而会从更高级的语言来编译它,例如用Solidity,与Javascript相似的专用语言。链上智能合约dapp零碎开发定制(I34案例-I633源码-53I9),这些字节码的确给区块链的功能性提供了指引,因而代码能够很容易与它进行交互,例如转移密码学货币和记录事件。它是运行在可复制、共享的账本上的计算机程序,能够解决信息,接管、贮存和发送价值。

pragma solidity ^0.4.22;
contract SimpleStorage{

uint storedDate;function set (uint x) public{    storedDate = x;}function get() public view returns(uint){    return storedDate;}

}
pragma solidity ^0.4.22;
contract SolidityTest{

constructor() public{} function getResult() public view returns(uint){   //这是单行正文   /*   *这是多行正文   *相似其余语言的正文   */    uint a = 1;    uint b = 2;    uint result = a + b;    return result;}

}
地址类型
地址类型示意以太坊地址,长度为20字节。地址能够应用.balance办法取得余额,也能够应用.transfer办法将余额转到另一个地址。

address x = 0x212;
address myAddress = this;

if (x.balance < 10 && myAddress.balance >= 10)

x.transfer(10);

援用类型/复合数据类型
Solidity中,有一些数据类型由值类型组合而成,相比于简略的值类型,这些类型通常通过名称援用,被称为援用类型。

援用类型包含:

  • 数组 (字符串与bytes是非凡的数组,所以也是援用类型)
  • struct (构造体)
  • map (映射)

状态变量
Solidity 反对三种类型的变量:

状态变量 – 变量值永恒保留在合约存储空间中的变量。
局部变量 – 变量值仅在函数执行过程中无效的变量,函数退出后,变量有效。
全局变量 – 保留在全局命名空间,用于获取区块链相干信息的非凡变量。
Solidity 是一种动态类型语言,这意味着须要在申明期间指定变量类型。每个变量申明时,都有一个基于其类型的默认值。没有undefined或null的概念。

pragma solidity ^0.4.22;
contract SolidityTest1{

uint storedDate; //状态变量constructor() public {    storedDate = 10; //应用状态变量}

}

局部变量
变量值仅在函数执行过程中无效的变量,函数退出后,变量有效。函数参数是局部变量

pragma solidity ^0.4.22;

contract SolidityTest2{

uint storedDate; //状态变量constructor() public{    storedDate = 10;}function getResult() public view returns(uint){    uint a=1;  //局部变量    uint b=2;    uint result = a+b;    return result;//拜访局部变量}

}