solidity中String和bytes家族
对solidity没有怨恨,习惯了go,python,C/C++的我,在使用solidity写合约时,总有些兴奋(dandan)忧伤不能表达
本文就是本菜鸟遇到的坑总结一下,如果不对或者不满意的欢迎指正,我会尽量☺及时修正。
solidity简介
Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行。
solidity使用
Solidity 是静态类型语言,支持继承、库和复杂的用户定义类型等特性。它的语法接近于Javascript,是一种面向对象的语言。
solidity字符串使用
首先明确solidity中应尽量的减少字符串的使用,变长 UTF-8 编码字符串类型,并不是值类型,solidity对字符串的支持有限,在很多操作上受到限制:
- 无法确定字符串的长度;
- 无法按照位置更改某个特定字符;
- 无法字符串拼接;
- 无法提取其中一部分;
String简单介绍:
1.solidity 中的字符串拼接需要通过bytes转换进行拼接
//错误示范:
String str1 = 'asdf'
String str2 = str1 + 'sdf' //这种行为是不允许的在solidity中
//常用写法:
function joinString(string _str1, string _str2) internal returns (string){
bytes memory _str1ToBytes =