Closed solnex closed 1 month ago
原先的规则没问题,string和bytes作为memory赋值给memory的情况也会创建引用,而不是新的复本。见下面的例子:
pragma solidity ^0.8.20;
contract Test {
function testString() public pure returns (string memory, string memory) {
string memory original = "Hello";
string memory newString = original;
// 修改新变量
bytes memory newData = bytes(newString);
newData[0] = "J";
newString = string(newData);
return (original, newString);
}
}
What type of PR is this (这是什么类型的PR)
Which issue(s) this PR fixes(Optional) (这个PR 修复了什么问题 (可选择))
What this PR does / why we need it (这个PR 做了什么/ 我们为什么需要这个PR)
补充string和bytes作为memory赋值给memory的情况