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=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);
