basic_knowledge
Table of Contents

solidity

Solidity 工具列表

第三方 Solidity 解析器和语法

Hello World 代码

pragma solidity ^0.4.21; // 程序版本

contract SimpleStorage {       // 合约声明, 封装了合约的方法和变量
    uint storedData;    //  声明一个类型为 uint (256位无符号整数)的状态变量

    function set(uint x) {      // 合约的方法
        storedData = x;
    }

    function get() constant returns (uint){     
        return storedData;
    }
}

constant(视觉上的警示) -> view (最新版本变成view 方法)

Return uint 指定返回类型

该合约能完成的事情并不多(由于以太坊构建的基础架构的原因):它能允许任何人在合约中存储一个单独的数字,并且这个数字可以被世界上任何人访问,且没有可行的办法阻止你发布这个数字。当然,任何人都可以再次调用 set ,传入不同的值,覆盖你的数字,但是这个数字仍会被存储在区块链的历史记录中。随后,我们会看到怎样施加访问限制,以确保只有你才能改变这个数字。

pure

比constant警示作用更严格,函数中,成员变量无法读写

pure修饰的函数不能改也不能读状态变量,只能操作函数内部变量,否则编译通不过。

view

view的作用和constant一模一样,可以读取状态变量但是不能改

remix 在线编辑器

remix.ethereum.org

eth gas

在函数调用的通过的gas 来完成

全局变量

ether

ether单位

时间单位

block块

像singleton,整个程序里面只有一个,谁都能access

msg消息

包含智能合约中函数调用者的信息和数据

## 局部变量

solidity中变量的作用域类似javascript,与java不同:只要在function中定义了局部变量,这个局部变量的作用域会穿透{},在整个function中都有效