Wie greife ich auf eine Zuordnung in einer Bibliothek zu?

library Lib{
    struct Data {
        mapping (uint => uint) a;
    }

    function inc(Data self) internal{
        self.a[0] =+1;
    }
}
contract Example{

    address recipient = 0x0000cafebabe;

    Lib.Data data;

    function send(){
        Lib.inc(data);
    }
}

Führt zu Fehlern

7:9: Fehler: Member "a" ist nicht verfügbar in struct Datenspeicher außerhalb des Speichers.
        self.a[0] =+1;
        ^----^

Antworten (1)

Lassen Sie Ihren Code wie folgt ändern

function inc(Data storage self) internal{
        self.a[0]=+1;
    }

Beachten Sie den storageTeil davon. Bitte verstehen Sie die Konzepte der internen Typen für Variablen und In-Memory-Typen

Wow, wusste nicht, muss diesen Montag nachsehen, muss morgen mit meinem Vater zum F1-Rennen gehen