-
bitcoin $87959.907984 USD
1.34% -
ethereum $2920.497338 USD
3.04% -
tether $0.999775 USD
0.00% -
xrp $2.237324 USD
8.12% -
bnb $860.243768 USD
0.90% -
solana $138.089498 USD
5.43% -
usd-coin $0.999807 USD
0.01% -
tron $0.272801 USD
-1.53% -
dogecoin $0.150904 USD
2.96% -
cardano $0.421635 USD
1.97% -
hyperliquid $32.152445 USD
2.23% -
bitcoin-cash $533.301069 USD
-1.94% -
chainlink $12.953417 USD
2.68% -
unus-sed-leo $9.535951 USD
0.73% -
zcash $521.483386 USD
-2.87%
Was ist ein Mapping in Solidity und wie speichert es Schlüssel-Wert-Paare?
Mappings in Solidity enable efficient, gas-optimized key-value storage using keccak256 hashing, ideal for balances, access control, and lookup-heavy smart contract use cases.
Nov 10, 2025 at 12:20 pm
Zuordnungen in Solidität verstehen
1. Eine Zuordnung in Solidity ist ein Referenztyp, der zum Speichern von Daten in Form von Schlüssel-Wert-Paaren verwendet wird, ähnlich wie Hash-Tabellen oder Wörterbücher in anderen Programmiersprachen. Es ermöglicht Entwicklern, einen eindeutigen Schlüssel mit einem bestimmten Wert zu verknüpfen, was effiziente Suchvorgänge und Aktualisierungen ermöglicht.
2. Die Syntax zum Deklarieren einer Zuordnung lautet „mapping(keyType => valueType)“ , wobei „keyType“ fast jeder Elementartyp wie uint, Adresse oder Bytes sein kann, jedoch keine Referenztypen wie Arrays oder andere Zuordnungen. Der valueType kann ein beliebiger Typ sein, einschließlich Strukturen, Arrays oder sogar einer anderen Zuordnung.
3. Zuordnungen werden in Verträgen deklariert und normalerweise zur Verwaltung von Zustandsvariablen verwendet. Da sie im Speicher gespeichert sind, bleiben ihre Werte über Funktionsaufrufe und Transaktionen hinweg bestehen.
4. Ein charakteristisches Merkmal von Zuordnungen ist, dass sie nicht iteriert werden können. Es gibt keinen integrierten Mechanismus zum Abrufen einer Liste von Schlüsseln oder Werten. Diese Einschränkung ergibt sich aus der Funktionsweise des Speichermodells von Ethereum – Zuordnungen sind für den schnellen Zugriff per Schlüssel und nicht für die Aufzählung konzipiert.
5. Wenn eine Zuordnung erstellt wird, werden alle möglichen Schlüssel mit dem Standardwert des valueType initialisiert (z. B. 0 für Ganzzahlen, false für Boolesche Werte). Dies bedeutet, dass der Zugriff auf einen nicht vorhandenen Schlüssel den Standardwert zurückgibt und keinen Fehler auslöst.
Speichermechanismus hinter Zuordnungen
1. Mappings speichern Daten nicht in einem herkömmlichen Tabellenformat. Stattdessen verwendet Solidity die Hash-Funktion keccak256, um Speicherplätze dynamisch zu berechnen. Jeder Schlüssel wird mit keccak256 zusammen mit der Speichersteckplatzposition der Zuordnungsvariablen gehasht.
2. Für eine Zustandsvariablenzuordnung im Speichersteckplatz n wird der mit einem bestimmten Schlüssel verknüpfte Wert in keccak256(key .slot) gespeichert, wobei „.“ bezeichnet Verkettung. Dadurch wird sichergestellt, dass jeder Schlüssel einem eindeutigen, deterministischen Speicherort zugeordnet ist.
3. Da die Hash-Funktion unidirektional ist, ist es rechnerisch nicht möglich, zurückzuentwickeln, welche Schlüssel festgelegt wurden. Dies trägt dazu bei, dass Zuordnungen nicht iteriert werden können.
4. Verschachtelte Zuordnungen folgen demselben Prinzip. In einer Zuordnung wie „mapping(address =>apping(uint => bool)“) wird der Slot der inneren Zuordnung bestimmt, indem der äußere Schlüssel und der Slot der äußeren Zuordnung gehasht werden und dieses Ergebnis dann als Basis für die Suche nach dem inneren Schlüssel verwendet wird.
5. Dieses Hashing-basierte Speicherlayout macht Zuordnungen für Lese- und Schreibvorgänge äußerst effizient, die unabhängig von der Anzahl der Einträge in konstanter Zeit ausgeführt werden.
Praktische Anwendungsfälle in Smart Contracts
1. Eine häufige Verwendung von Mappings ist die Verfolgung von Benutzerguthaben in ERC-20-Tokens. Eine Zuordnung wie „mapping(address => uint256) private _balances“ ermöglicht das schnelle Abrufen und Aktualisieren von Token-Beständen für jede Wallet-Adresse.
2. Zutrittskontrollsysteme verwenden häufig Zuordnungen, um Rollen oder Berechtigungen zu identifizieren. Mit „mapping(address => bool) public isAdmin“ kann beispielsweise effizient überprüft werden, ob eine Adresse über Administratorrechte verfügt.
3. In dezentralen Börsen oder NFT-Marktplätzen verknüpfen Mappings Order-IDs oder Token-IDs mit strukturierten Daten wie Preis, Eigentümer oder Listungsstatus. Dies ermöglicht die sofortige Suche nach Handelsdetails, ohne große Datensätze scannen zu müssen.
4. Zuordnungen werden auch verwendet, um Wiedereintrittsangriffe zu verhindern, indem Adressen während der Funktionsausführung markiert werden. Eine einfache private Eingabe von „mapping(address => bool)“ kann als Sperrmechanismus fungieren.
5. Aufgrund ihrer gaseffizienten Zugriffsmuster werden Mappings gegenüber Arrays bevorzugt, wenn häufige Suchen nach Kennungen erforderlich sind, insbesondere bei Protokollen mit hohem Durchsatz.
Häufig gestellte Fragen
Können Zuordnungen vollständig gelöscht werden? Ja, die Verwendung des Schlüsselworts „delete“ in einer Zuordnung löscht alle Einträge, indem jeder geschriebene Slot auf seinen Standardwert zurückgesetzt wird. Da Zuordnungen jedoch praktisch mit Standardwerten für alle Schlüssel initialisiert werden, betrifft dieser Vorgang nur Schlüssel, die explizit zugewiesen wurden.
Ist es möglich, eine Zuordnung von einer Funktion zurückzugeben? Nein, Zuordnungen können nicht direkt von Funktionen zurückgegeben werden, da sie in Solidity keine gültigen Rückgabetypen sind. Es können nur bestimmte Werte zurückgegeben werden, auf die über einen Schlüssel zugegriffen wird.
Können String- oder dynamische Arrays als Mapping-Schlüssel verwendet werden? String- und dynamische Byte-Arrays können nicht als Zuordnungsschlüssel verwendet werden. Es sind nur Datentypen fester Größe wie Bytes32, Uint und Adresse zulässig. Zeichenfolgen müssen bei Bedarf in ein Format mit fester Größe wie Bytes32 konvertiert werden.
Wie wirken sich Kartierungen auf die Gaskosten aus? Das Lesen aus einer Zuordnung mit einem nicht initialisierten Schlüssel verbraucht weniger Gas, da der Standardwert zurückgegeben wird, ohne den Speicher zu ändern. Das Schreiben oder Aktualisieren eines Werts führt aufgrund der staatlichen Wachstumskostenregeln von Ethereum zu höherem Gas, insbesondere wenn dadurch ein Nullwert in einen Wert ungleich Null geändert wird.
Haftungsausschluss:info@kdj.com
Die bereitgestellten Informationen stellen keine Handelsberatung dar. kdj.com übernimmt keine Verantwortung für Investitionen, die auf der Grundlage der in diesem Artikel bereitgestellten Informationen getätigt werden. Kryptowährungen sind sehr volatil und es wird dringend empfohlen, nach gründlicher Recherche mit Vorsicht zu investieren!
Wenn Sie glauben, dass der auf dieser Website verwendete Inhalt Ihr Urheberrecht verletzt, kontaktieren Sie uns bitte umgehend (info@kdj.com) und wir werden ihn umgehend löschen.
-
RAIN Jetzt handeln$0.007852
113.00%
-
PIPPIN Jetzt handeln$0.06097
51.96%
-
PARTI Jetzt handeln$0.1396
42.04%
-
WAVES Jetzt handeln$0.9141
41.69%
-
ARC Jetzt handeln$0.04302
35.73%
-
HONEY Jetzt handeln$0.01029
21.80%
- Der steinige Weg von Bitcoin: Die Inflation steigt, die Hoffnung auf Zinssenkungen schwindet und die Debatte um digitales Gold verschärft sich
- 2026-02-01 09:40:02
- Bitcoin zeigt günstigere Datensignale, Analysten beäugen die Goldrotation
- 2026-02-01 07:40:02
- Der jüngste Absturz von Bitcoin: Ist dies das ultimative „Buy the Dip“-Signal für Krypto?
- 2026-02-01 07:35:01
- Big Apple-Krypto-Blues: Bitcoin und Ethereum geraten ins Straucheln, als 500 Milliarden US-Dollar im makroökonomischen Wirbelsturm verschwinden
- 2026-02-01 07:35:01
- Michael Wrubel kürt IPO Genie zum nächsten großen Vorverkauf: Eine neue Ära für Frühphaseninvestitionen bricht in die Blockchain ein
- 2026-02-01 07:30:02
- XRP, Ripple, Support Level: Navigieren im urbanen Dschungel der Krypto-Volatilität
- 2026-02-01 06:35:01
Verwandtes Wissen
Wie kann man DeFi-Kontrakte während des aktuellen Liquiditätsanstiegs handeln?
Feb 01,2026 at 07:00am
Verständnis der Liquiditätsdynamik in DeFi-Protokollen 1. Liquiditätsschübe bei DeFi werden oft durch koordinierte Kapitalzuflüsse aus Yield-Farming-A...
Wie nutzt man das Volumenprofil für die Preisermittlung von Krypto-Verträgen?
Feb 01,2026 at 09:39am
Grundlagen des Volumenprofils verstehen 1. Das Volumenprofil ist eine visuelle Darstellung der Handelsaktivität auf bestimmten Preisniveaus über einen...
Wie kann man zum ersten Mal Krypto-Kontrakte auf Bybit handeln?
Feb 01,2026 at 04:00am
Einrichten Ihres Bybit-Kontos 1. Besuchen Sie die offizielle Bybit-Website und klicken Sie auf die Schaltfläche „Anmelden“ oben rechts auf der Homepag...
Wie findet man Krypto-Verträge mit hohem Hebel und geringem Slippage?
Feb 01,2026 at 04:19am
Suche nach hochverschuldeten Kryptoverträgen 1. Händler durchsuchen dezentrale und zentralisierte Börsen häufig nach unbefristeten Terminkontrakten, d...
Wie analysiert man das offene Interesse am Krypto-Kontrakthandel? (Pro-Strategie)
Feb 01,2026 at 06:20am
Grundlegendes zu Open Interest-Grundlagen 1. Open Interest stellt die Gesamtzahl der ausstehenden Derivatekontrakte – wie Futures oder Perpetual Swaps...
Wie schätzt man den PNL mit einem Krypto-Vertragsrechner?
Feb 01,2026 at 09:20am
Krypto-Vertragsrechner verstehen 1. Ein Krypto-Kontraktrechner ist ein Tool, mit dem potenzielle Gewinne und Verluste für Futures oder Perpetual-Swap-...
Wie kann man DeFi-Kontrakte während des aktuellen Liquiditätsanstiegs handeln?
Feb 01,2026 at 07:00am
Verständnis der Liquiditätsdynamik in DeFi-Protokollen 1. Liquiditätsschübe bei DeFi werden oft durch koordinierte Kapitalzuflüsse aus Yield-Farming-A...
Wie nutzt man das Volumenprofil für die Preisermittlung von Krypto-Verträgen?
Feb 01,2026 at 09:39am
Grundlagen des Volumenprofils verstehen 1. Das Volumenprofil ist eine visuelle Darstellung der Handelsaktivität auf bestimmten Preisniveaus über einen...
Wie kann man zum ersten Mal Krypto-Kontrakte auf Bybit handeln?
Feb 01,2026 at 04:00am
Einrichten Ihres Bybit-Kontos 1. Besuchen Sie die offizielle Bybit-Website und klicken Sie auf die Schaltfläche „Anmelden“ oben rechts auf der Homepag...
Wie findet man Krypto-Verträge mit hohem Hebel und geringem Slippage?
Feb 01,2026 at 04:19am
Suche nach hochverschuldeten Kryptoverträgen 1. Händler durchsuchen dezentrale und zentralisierte Börsen häufig nach unbefristeten Terminkontrakten, d...
Wie analysiert man das offene Interesse am Krypto-Kontrakthandel? (Pro-Strategie)
Feb 01,2026 at 06:20am
Grundlegendes zu Open Interest-Grundlagen 1. Open Interest stellt die Gesamtzahl der ausstehenden Derivatekontrakte – wie Futures oder Perpetual Swaps...
Wie schätzt man den PNL mit einem Krypto-Vertragsrechner?
Feb 01,2026 at 09:20am
Krypto-Vertragsrechner verstehen 1. Ein Krypto-Kontraktrechner ist ein Tool, mit dem potenzielle Gewinne und Verluste für Futures oder Perpetual-Swap-...
Alle Artikel ansehen














