string 类型存储字符串, 在solidity中使用了UTF-8格式来存储字符串。
123 | string public name="jonson";//6a6f6e736f6estring public name1="!@#$%^&*())*";string public name2="我爱你"; |
下面是错误的方式
1234567 | // function getLength() returns(uint){ // name.length; // } // function getName() returns(bytes1) { // return name[0]; // } |
1234567 | function getLength() public view returns(uint){ return bytes(name).length;}function getName() public view returns(bytes1){return bytes(name)[1];} |
1234 | function changeName() public{// bytes(name)[0]=0x55; bytes(name)[0]='P';} |
1234 | string public name2="我爱你"; function getLength3() public view returns(uint){ return bytes(name2).length;} |
1234 | function getBytes() public view returns(bytes){ return bytes(name);} |
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | pragma solidity ^0.4.23;contract StringTest{ string public name="jonson";//6a6f6e736f6e string public name1="!@#$%^&*())*"; string public name2="我爱你"; // function getLength() returns(uint){ // name.length; // } function getLength() public view returns(uint){ return bytes(name).length; } // function getName() returns(bytes1) { // return name[0]; // } function getName() public view returns(bytes1){ return bytes(name)[1]; } function changeName() public{ // bytes(name)[0]=0x55; bytes(name)[0]='P'; } function getBytes() public view returns(bytes){ return bytes(name); } function getLength2() public view returns(uint){ return bytes(name1).length; } function getBytes1() public view returns(bytes){ return bytes(name1); } function getLength3() public view returns(uint){ return bytes(name2).length; } function getBytes2() public view returns(bytes){ return bytes(name2); }} |
1、字符串是特殊的动态长度字节数组
2、字符串不能够字节的修改长度和内容,需要转换为bytes动态字节数组
3、字符串在solidity中使用了UTF8格式来存储,所以汉字占了3个字节,英文和特殊字符占了一个字节
本文链接: https://dreamerjonson.com/2018/11/15/solidity-11/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。