Solidity基础入门知识(六)动态大小字节数组

本文介绍了Solidity中动态大小字节数组的基础知识,包括如何将常规字符串转换为bytes,处理汉字和特殊字符,创建与操作bytes数组,以及length和push函数的使用案例。强调了动态字节数组在不确定数据大小时的优势,并提醒了汉字字符串的处理注意事项。
摘要由CSDN通过智能技术生成

一、动态大小字节数组

  • string 是一个动态尺寸的UTF-8编码字符串,它其实是一个特殊的可变字节数组,string是引用类型,而非值类型。
  • bytes 动态字节数组,引用类型。

根据经验,在我们不确定字节数据大小的情况下,我们可以使用string或者bytes,而如果我们清楚的知道或者能够将字节数控制在bytes1 ~ bytes32,那么我们就使用bytes1 ~ bytes32,这样的话能够降低存储成本。

二、常规字符串 string 转换为 bytes

string字符串中没有提供length方法获取字符串长度,也没有提供方法修改某个索引的字节码,不过我们可以将string转换为bytes,再调用length方法获取字节长度,当然可以修改某个索引的字节码(等同于:想要获取一个string的长度,必须转为bytes;想要修改string的内容,必须转换为bytes)。

1、源码

pragma solidity ^0.4.4;

contract C {

    bytes9 public g = 0x6c697975656368756e;

    string public name = "liyuechun";

    function gByteLength() constant returns (uint) {
   

        return g.length;
    }

    function nameBytes() constant returns (bytes) {
   

        return bytes(name);
    }

    function nameLength() constant returns (uint) {
   

        r
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值