-
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 der Unterschied zwischen einer öffentlichen, privaten, internen und externen Funktion in Solidity?
Solidity's function visibility specifiers—public, private, internal, and external—control access to functions, impacting security, inheritance, and gas costs in smart contracts.
Nov 20, 2025 at 10:39 pm
Funktionssichtbarkeit in Solidität verstehen
Solidity, die primäre Programmiersprache für Ethereum-Smart Contracts, erzwingt eine strenge Zugriffskontrolle durch Funktionssichtbarkeitsspezifizierer. Diese Spezifizierer legen fest, wer eine Funktion aufrufen kann – sei es innerhalb des Vertrags, abgeleiteter Verträge oder extern. Die vier Typen – öffentlich, privat, intern und extern – definieren den Umfang der Zugänglichkeit und spielen eine entscheidende Rolle bei der Sicherung der Vertragslogik.
Öffentliche Funktionen
1. Auf öffentliche Funktionen kann von überall aus zugegriffen werden – innerhalb des Vertrags, abgeleiteter Verträge und extern über Transaktionen oder Aufrufe.2. Wenn eine Funktion als öffentlich markiert ist, generiert Solidity automatisch eine Getter-Funktion, wenn es sich um eine Statusvariable handelt oder einen direkten Aufruf über die Vertragsschnittstelle zulässt.
3. Diese Funktionen werden Teil der ABI (Application Binary Interface) des Vertrags und können so von Wallets, dApps und anderen Smart Contracts aufgerufen werden.
4. Bei öffentlichen Veranstaltungen können die Gaskosten aufgrund des Overheads für externe Anrufe und der Anforderungen an die Datenkodierung höher sein.
5. Ein häufiger Anwendungsfall umfasst benutzerbezogene Funktionen wie Token-Transfers oder Kontostandsprüfungen in ERC-20-Verträgen.
Private Funktionen
1. Private Funktionen können nur innerhalb desselben Vertrags aufgerufen werden und sind für abgeleitete Verträge oder externe Einheiten völlig unzugänglich.2. Sie eignen sich ideal zum Kapseln sensibler Logik, die nicht offengelegt oder überschrieben werden sollte.
3. Da sie nicht Teil der externen Schnittstelle sind, erscheinen private Funktionen nicht im ABI.
4. Entwickler verwenden sie häufig für interne Validierungs-, Hashing- oder Bereinigungsroutinen, die öffentliche oder interne Vorgänge unterstützen.
5. Obwohl ihr Code privat ist, ist er immer noch in der Kette sichtbar; Datenschutz bezieht sich nur auf den Ausführungszugriff, nicht auf die Verschleierung von Quellen.
Interne Funktionen
1. Interne Funktionen sind innerhalb des definierenden Vertrags und aller davon erbenden Verträge zugänglich.2. Sie können nicht direkt von externen Konten oder unabhängigen Verträgen aufgerufen werden, auch nicht durch adressbasierte Interaktionen.
3. Vererbungshierarchien stützen sich stark auf interne Funktionen, um wiederverwendbare Logik zu teilen, ohne sie öffentlich zugänglich zu machen.
4. Wie private Funktionen tragen sie nicht zum externen ABI des Vertrags bei.
5. Ein Beispiel umfasst Hilfsfunktionen in der SafeMath-Bibliothek von OpenZeppelin oder Modifikatoren, die Vorbedingungen über mehrere Methoden hinweg erzwingen.
Externe Funktionen
1. Externe Funktionen können nur von außerhalb des Vertrags aufgerufen werden – entweder durch einen anderen Vertrag oder ein EOA (Externally Owned Account).2. Sogar der Vertrag selbst muss die Syntax this.functionName() verwenden, um seine eigenen externen Funktionen aufzurufen, was einen Overhead für den Nachrichtenaufruf verursacht.
3. Diese Sichtbarkeit ist nützlich, wenn Sie sicherstellen möchten, dass eine Funktion niemals intern ausgeführt wird, um die Modularität zu fördern und den Gasmissbrauch zu reduzieren.
4. Externe Funktionen sind im ABI enthalten und können über Transaktionen oder Contract-to-Contract-Aufrufe aufgerufen werden.
5. Sie werden häufig für große Dateneingaben verwendet, da durch Aufrufdaten (die von externen Funktionen verwendet werden) die mit internen Aufrufen verbundenen Kosten für das Kopieren des Speichers vermieden werden.
Häufig gestellte Fragen
Kann eine private Funktion in einem abgeleiteten Vertrag überschrieben werden? Nein, auf private Funktionen kann nicht durch abgeleitete Verträge zugegriffen oder diese überschrieben werden. Mit den Schlüsselwörtern virtual und override können nur interne und öffentliche Funktionen überschrieben werden.
Was passiert, wenn ich keinen Sichtbarkeitsmodifikator spezifiziere? Wenn keine Sichtbarkeit angegeben ist, ist Solidity für Funktionen standardmäßig öffentlich. Für Zustandsvariablen ist der Standardwert intern. Aus Gründen der Sicherheit und Klarheit wird davon abgeraten, sich auf Standardwerte zu verlassen.
Gibt es einen Leistungsunterschied zwischen internen und externen Funktionsaufrufen? Ja. Interne Anrufe werden im selben Vertragskontext ausgeführt und verbrauchen nur minimalen Gasverbrauch. Externe Aufrufe erfordern, selbst wenn sie auf sich selbst verweisen, einen Nachrichtenaufruf, was aufgrund der Stack-Isolation und der ABI-Codierung den Gasverbrauch erhöht.
Kann eine externe Funktion Zustandsvariablen ändern? Ja, externe Funktionen können Zustandsvariablen ändern, sofern sie nicht durch andere Modifikatoren wie view oder pure eingeschränkt werden. Ihre Fähigkeit, den Speicher zu verändern, hängt von der Logik ab, nicht von der Sichtbarkeit.
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%
- Bitcoin, eCash Fork und Airdrop Dynamics: Ein tiefer Einblick in die neuesten Kontroversen im Kryptobereich
- 2026-05-03 12:55:01
- Konsens 2026 Miami: Web3, Blockchain, Kryptowährung, NFTs, Metaverse, Konferenz, 5. Mai – Wo die Wall Street auf die digitale Grenze trifft
- 2026-05-02 12:45:01
- Die Fed hält die Zinsen stabil, was inmitten geopolitischer Spannungen einen Bitcoin-Preisverfall auslöst
- 2026-05-01 06:45:01
- Bitcoin-Miner elektrifizieren das Netz: Der Erwerb eines Gaskraftwerks in Ohio läutet eine neue Ära für digitales Gold ein
- 2026-05-01 00:45:01
- Der MEGA-Token von MegaETH erreicht den Big Apple: Er setzt neue Leistungsmaßstäbe für Echtzeit-Blockchain
- 2026-05-01 00:55:01
- Solanas rutschiger Abhang: Die Preisprognose deutet auf einen Widerstandsverlust und mögliche weitere Rückgänge hin
- 2026-05-01 06:45:01
Verwandtes Wissen
Wie kann man bei Bybit für den BTC-Handel zwischen linearen und inversen unbefristeten Verträgen wählen?
Jun 06,2026 at 02:54am
Vertragsabwicklungsmechanismen 1. Lineare unbefristete Verträge auf Bybit werden in USDT abgewickelt, was bedeutet, dass alle Gewinn- und Verlustberec...
Wie kann man Terminmarktmanipulationen wie Stoppjagden und Spoofing erkennen und vermeiden?
Jun 07,2026 at 02:20pm
Bitcoin Halbierungsmechanik 1. Das Protokoll von Bitcoin erzwingt einen festen Ausgabeplan, bei dem die Blockbelohnungen etwa alle 210.000 Blöcke halb...
Wie richte ich Risikomanagementregeln auf Bybit ein, um meinen maximalen täglichen Verlust zu begrenzen?
Jun 04,2026 at 04:40pm
Konfiguration des Verlustlimits auf Kontoebene 1. Melden Sie sich per Web- oder Mobilanwendung mit Zwei-Faktor-Authentifizierung bei Ihrem Bybit-Konto...
Wie aktiviere ich den Portfolio-Margin-Modus auf Binance, um meine Margin-Anforderungen zu reduzieren?
Jun 05,2026 at 04:59am
Bitcoin Halbierungsmechanik 1. Das Protokoll von Bitcoin erzwingt einen festen Ausgabeplan, bei dem die Blockbelohnungen etwa alle 210.000 Blöcke halb...
Wie kann ich meine offenen Futures-Positionen von Binance zu Bybit migrieren, ohne sie zu schließen?
Jun 04,2026 at 03:59am
Bitcoin Halbierungsmechanik 1. Das Protokoll von Bitcoin erzwingt einen festen Ausgabeplan, bei dem die Blockbelohnungen etwa alle 210.000 Blöcke halb...
Wie geht man mit den steuerlichen Auswirkungen von Gewinnen aus dem Krypto-Futures-Handel in den USA um?
May 29,2026 at 06:19pm
Bitcoin Halbierungsmechanik 1. Das Protokoll von Bitcoin erzwingt eine feste Angebotsobergrenze von 21 Millionen Münzen, wobei neue Einheiten durch Bl...
Wie kann man bei Bybit für den BTC-Handel zwischen linearen und inversen unbefristeten Verträgen wählen?
Jun 06,2026 at 02:54am
Vertragsabwicklungsmechanismen 1. Lineare unbefristete Verträge auf Bybit werden in USDT abgewickelt, was bedeutet, dass alle Gewinn- und Verlustberec...
Wie kann man Terminmarktmanipulationen wie Stoppjagden und Spoofing erkennen und vermeiden?
Jun 07,2026 at 02:20pm
Bitcoin Halbierungsmechanik 1. Das Protokoll von Bitcoin erzwingt einen festen Ausgabeplan, bei dem die Blockbelohnungen etwa alle 210.000 Blöcke halb...
Wie richte ich Risikomanagementregeln auf Bybit ein, um meinen maximalen täglichen Verlust zu begrenzen?
Jun 04,2026 at 04:40pm
Konfiguration des Verlustlimits auf Kontoebene 1. Melden Sie sich per Web- oder Mobilanwendung mit Zwei-Faktor-Authentifizierung bei Ihrem Bybit-Konto...
Wie aktiviere ich den Portfolio-Margin-Modus auf Binance, um meine Margin-Anforderungen zu reduzieren?
Jun 05,2026 at 04:59am
Bitcoin Halbierungsmechanik 1. Das Protokoll von Bitcoin erzwingt einen festen Ausgabeplan, bei dem die Blockbelohnungen etwa alle 210.000 Blöcke halb...
Wie kann ich meine offenen Futures-Positionen von Binance zu Bybit migrieren, ohne sie zu schließen?
Jun 04,2026 at 03:59am
Bitcoin Halbierungsmechanik 1. Das Protokoll von Bitcoin erzwingt einen festen Ausgabeplan, bei dem die Blockbelohnungen etwa alle 210.000 Blöcke halb...
Wie geht man mit den steuerlichen Auswirkungen von Gewinnen aus dem Krypto-Futures-Handel in den USA um?
May 29,2026 at 06:19pm
Bitcoin Halbierungsmechanik 1. Das Protokoll von Bitcoin erzwingt eine feste Angebotsobergrenze von 21 Millionen Münzen, wobei neue Einheiten durch Bl...
Alle Artikel ansehen














