solidity学习-function和dyte数组

一. function

    function名字(参数1 名字, 参数2 名字, … ) 访问权限 修饰符 returns(参数1 名字, 参数2 名字, … )

可见度/访问权限,即public/private/internal/external 如果不写则系统默认为public并且警告;

修饰符,即view/pure/payable 如果需要花费gas则不写;

returns(类型1 名字,类型2 名字,。。。,类型n 名字) PS.如果有的话

public:任何人都可以调用该函数,包括DApp的使用者。 private:只有合约本身可以调用该函数(在另一个函数中)。 internal:只有这份合同以及由此产生的所有合同才能称之为合同。 external:只有外部可以调用该函数,而合约内部不能调用。

view: 可以自由调用,因为它只是“查看”区块链的状态而不改变它 pure: 也可以自由调用,既不读取也不写入区块链 payable:常常用于将代币发送给合约地址。

二. dytes数组

  1. 一个dytes=8个位的字节:

bytes1 = uint8;bytes2 = uint16;bytes3 = uint32;…;bytes32 = uint256

选择bytes的理由:

  • 可以更好的表达16进制,如bytes1=0x6A,bytes1=(XXXX XXXX)正好四个表示一个16进制,以此类推;

  • 2.bytes数据声明时加入public,可以调用.length;

  • bytes内部自带length长度函数,而且长度固定,而且长度不可以被修改;

2. 可变长度byte数组

bytesarr = new bytes(length);