solidity中String和bytes家族

本文探讨了Solidity中String和bytes类型的使用,强调了在智能合约开发中减少对String依赖的重要性。Solidity字符串操作受限,如无法确定长度、更改字符等,而bytes类型提供更灵活的处理方式,特别是固定长度的bytes(bytes1到bytes32),在节省gas消耗方面更有优势。开发者应考虑使用bytes家族来优化合约设计。
摘要由CSDN通过智能技术生成

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 =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值