使用变量访问结构中的键

Use a variable to access key in struct

我有一个这样的结构:

struct test {
    string a;
    string b;
}

和这样的映射:

mapping (address => test) public tests;

我想要一个像这样更新结构的函数:

function updateStruct (string _paramName, string _newValue) {
  tests[msg.sender].(_paramName) = _newValue; // this is the line that shows the logic but doesn't work in compilation
}

我该怎么做?

Solidity 目前 (v0.8) 不支持通过魔术变量访问属性。

您需要直接访问属性。

function updateStructA(string memory _newValue) public {
    tests[msg.sender].a = _newValue;
}

function updateStructB(string memory _newValue) public {
    tests[msg.sender].b = _newValue;
}