# solidity学习-function和dyte数组 **Published by:** [zkmark](https://paragraph.com/@zkmark/) **Published on:** 2021-11-30 **URL:** https://paragraph.com/@zkmark/solidity-function-dyte ## Content 一. 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数组一个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); ## Publication Information - [zkmark](https://paragraph.com/@zkmark/): Publication homepage - [All Posts](https://paragraph.com/@zkmark/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@zkmark): Subscribe to updates