合约结构

1、明确solidity的版本号。
此行意味着我们正在阻止我们的程序被一个比0.4.0更老的编译器编译^表示向上兼容,但是不能够被0.5.0及其以上的编译器编译。
我们这样做是为了尽量减少代码以意想不到或不兼容的方式编译时可能发生的错误的风险。

2、定义一个合约,内部有不同的方法和属性。 描述一个对象,可以从属性和行为两个方面,这正是面向对象的重要特征。
3、在合约的内部声明变量的方法和属性。
4、定义不同的函数、属于不同的函数成员。

solidity智能合约[3]-代码结构_solidity智能合约

代码结构

函数的一般形式

1
function (<parameter types>) {public|internal|external} [pure|constant|view|payable] [returns (<return types>)]

solidity智能合约[3]-代码结构_solidity智能合约_02

function

函数修饰符

  • public:任何人都可以调用该函数,包括DApp的使用者。

  • private:只有合约本身可以调用该函数(在另一个函数中)。

  • internal:只有这份合同以及由此产生的所有合同才能称之为合同。

  • external:只有外部可以调用该函数,而合约内部不能调用。

  • view: 可以自由调用,因为它只是“查看”区块链的状态而不改变它

  • pure: 也可以自由调用,既不读取也不写入区块链

  • payable:常常用于将代币发送给合约地址。

solidity智能合约[3]-代码结构_区块链_03

修饰符

solidity智能合约[3]-代码结构_区块链_04