诗仙李白在《空城雀》的结尾写道“天命有定端,守分绝所欲”。Solidity中的字节数组也似这位诗人一样在代码中表达着自己志向不得伸展,又不想屈节钻营,只能过着“上天注定”的悲苦日子的愤懑与无奈之情。
实验目的
1. 了解bytes各种类型所代表的字节长度。
2. 明白固定长度字节的长度能否改变。
实验要求
1. 请编译上面的代码,结果会报错。根据赋值的数值长度为变量num1,num2,num3声明正确的固定长度字节类型。
2. 查看代码,填写前三个函数将返回的值写于注释后面的括号内。
3. 先判断setLength函数是否能编译成功,再将setLength函数的注释去掉,编译检查结果。
以下是本次实验所用的测试代码,请使用remix编辑器进行该实验。
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;
contract ByteArray{
bytes1 public num1 = 0x7a; //0111 1010
bytes2 public num2 = 0x7a68; //0111 1010 0110 1000
bytes12 public num3 = 0x7a68656e676a69616e78756e; //96位
function getLength() public view returns(uint){
return num1.length;
} //会返回 (1)
function getLength2() public view returns(uint){
return num2.length;
} //会返回 (2)
function getLength3() public view returns(uint){
return num3.length;
} // 会返回 (3)
function setLength() public {
num1.length = 18; // 判断字节数组长度是否能改变? (是或否)
}
}
下面是本次实验配套的视频教程:
