《道德经》第二章第二句“故有无相生,难以相成,长短相形,高下相盈,音声相和,前后相随。”世上有许多事都是相互对应的,没有绝对单独个体的存在。许多事物的发生都需要两两相应的。Solidity中的string类型也是这样的,他要明白自己的“高矮胖瘦”,还得要有别的参照物才能做到。
实验目的
1.学会如何获取string类型字节长度与其中元素。
2.知道如何修改string类型中的元素。
实验要求
1. 调用示例1的两个方法,一个是获取string类型的长度,另一个是获取string类型中的元素。编译一下,看看是否能通过?
2. 查看示例2代码注释里的三个练习,并按要求添加代码替换代码里的3个数字与括号。然后运行查看结果。思考Solidity如何读取string类型的长度与元素。
以下是本次实验所用到的测试代码,请使用remix编辑器完成该实验
// 示例1
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract DynamicString {
string name = "zhangsan";
// 编译前,依照getPartName函数修改返回内容。
function getLength() public view returns(uint) {
return name.length;
}
function getPartName() public view returns(bytes1) {
return bytes(name)[0];
}
}
// 示例2
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract DynamicBytes {
string name = "laozi";
// 请补充代码,将name强制转换为bytes类型,并返回它的长度。
function getLength() public view returns (uint) {
return (1)
}
//请补充代码,将name强制转换为bytes类型,并获取索引0处的值。
function getPartName() public view returns (bytes1) {
return (2)
}
//请补充代码,将name强制转换为bytes类型,并修改索引3处的值为‘L’。
function changeName() public {
(3)
}
}
下面是本实验所配套的视频教程:
