-
bitcoin $76624.373304 USD
-1.79% -
ethereum $2250.136487 USD
-1.36% -
tether $0.998277 USD
-0.04% -
bnb $691.737526 USD
-2.23% -
xrp $1.250415 USD
0.10% -
usd-coin $0.999636 USD
-0.01% -
solana $91.769993 USD
-2.60% -
tron $0.320718 USD
1.77% -
hyperliquid $83.540560 USD
-2.42% -
zcash $1129.534445 USD
-10.74% -
dogecoin $0.073771 USD
-2.08% -
monero $615.670132 USD
1.37% -
unus-sed-leo $9.294663 USD
-1.19% -
chainlink $11.068406 USD
-2.21% -
cardano $0.186724 USD
-2.00%
Quelle est la différence entre une fonction publique, privée, interne et externe dans 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
Comprendre la visibilité des fonctions dans Solidity
Solidity, le principal langage de programmation pour les contrats intelligents Ethereum, applique un contrôle d'accès strict via des spécificateurs de visibilité des fonctions. Ces spécificateurs déterminent qui peut appeler une fonction, que ce soit à partir du contrat, de contrats dérivés ou de l'extérieur. Les quatre types – public, privé, interne et externe – définissent la portée de l'accessibilité et jouent un rôle crucial dans la sécurisation de la logique contractuelle.
Fonctions publiques
1. Les fonctions publiques sont accessibles de n'importe où : à l'intérieur du contrat, des contrats dérivés et en externe via des transactions ou des appels.2. Lorsqu'une fonction est marquée comme publique, Solidity génère automatiquement une fonction getter s'il s'agit d'une variable d'état ou permet une invocation directe via l'interface du contrat.
3. Ces fonctions font partie de l'ABI (Application Binary Interface) du contrat, ce qui les rend appelables par des portefeuilles, des dApps et d'autres contrats intelligents.
4. Les coûts du gaz peuvent être plus élevés pour les fonctions publiques en raison des frais généraux liés aux appels externes et des exigences de codage des données.
5. Un cas d'utilisation courant inclut des fonctions destinées aux utilisateurs telles que les transferts de jetons ou les vérifications de solde dans les contrats ERC-20.
Fonctions privées
1. Les fonctions privées ne peuvent être appelées qu'au sein du même contrat et sont totalement inaccessibles aux contrats dérivés ou aux entités externes.2. Ils sont idéaux pour encapsuler une logique sensible qui ne doit pas être exposée ou remplacée.
3. Ne faisant pas partie de l'interface externe, les fonctions privées n'apparaissent pas dans l'ABI.
4. Les développeurs les utilisent souvent pour les routines internes de validation, de hachage ou de nettoyage qui prennent en charge les opérations publiques ou internes.
5. Bien qu'il soit privé, leur code est toujours visible sur la chaîne ; la confidentialité fait uniquement référence à l’accès à l’exécution, et non à la dissimulation de la source.
Fonctions internes
1. Les fonctions internes sont accessibles au sein du contrat définissant et de tout contrat qui en hérite.2. Ils ne peuvent pas être appelés directement par des comptes externes ou des contrats non liés, même via des interactions basées sur l'adresse.
3. Les hiérarchies d'héritage s'appuient fortement sur des fonctions internes pour partager une logique réutilisable sans l'exposer publiquement.
4. Comme les fonctions privées, elles ne contribuent pas à l'ABI externe du contrat.
5. Un exemple inclut des fonctions utilitaires dans la bibliothèque SafeMath d'OpenZeppelin ou des modificateurs qui appliquent des conditions préalables à plusieurs méthodes.
Fonctions externes
1. Les fonctions externes ne peuvent être appelées que depuis l'extérieur du contrat, soit par un autre contrat, soit par un EOA (Externally Owned Account).2. Même le contrat lui-même doit utiliser la syntaxe this.functionName() pour appeler ses propres fonctions externes, ce qui entraîne une surcharge d'appel de message.
3. Cette visibilité est utile lorsque vous souhaitez garantir qu'une fonction n'est jamais exécutée en interne, favorisant ainsi la modularité et réduisant la mauvaise utilisation du gaz.
4. Les fonctions externes sont incluses dans l'ABI et peuvent être invoquées via des appels de transaction ou de contrat à contrat.
5. Ils sont couramment utilisés pour les entrées de données volumineuses, car les données d'appel (utilisées par les fonctions externes) évitent les coûts de copie de mémoire associés aux appels internes.
Foire aux questions
Une fonction privée peut-elle être remplacée dans un contrat dérivé ? Non, les fonctions privées ne peuvent pas être accessibles ou remplacées par des contrats dérivés. Seules les fonctions internes et publiques peuvent être remplacées à l'aide des mots-clés virtual et override.
Que se passe-t-il si je ne spécifie pas de modificateur de visibilité ? Si aucune visibilité n'est spécifiée, Solidity est par défaut public pour les fonctions. Pour les variables d'état, la valeur par défaut est interne. Il est déconseillé de s'appuyer sur des valeurs par défaut pour des raisons de sécurité et de clarté.
Existe-t-il une différence de performances entre les appels de fonction internes et externes ? Oui. Les appels internes s’exécutent dans le même contexte contractuel et utilisent un minimum de gaz. Les appels externes, même lorsqu'ils sont auto-référencés, nécessitent un appel de message, ce qui augmente la consommation de gaz en raison de l'isolation de la pile et du codage ABI.
Une fonction externe peut-elle modifier les variables d’état ? Oui, les fonctions externes peuvent modifier les variables d'état à moins d'être limitées par d'autres modificateurs comme view ou pure. Leur capacité à modifier le stockage dépend de la logique et non de la visibilité.
Clause de non-responsabilité:info@kdj.com
Les informations fournies ne constituent pas des conseils commerciaux. kdj.com n’assume aucune responsabilité pour les investissements effectués sur la base des informations fournies dans cet article. Les crypto-monnaies sont très volatiles et il est fortement recommandé d’investir avec prudence après une recherche approfondie!
Si vous pensez que le contenu utilisé sur ce site Web porte atteinte à vos droits d’auteur, veuillez nous contacter immédiatement (info@kdj.com) et nous le supprimerons dans les plus brefs délais.
-
PIEVERSE Échangez maintenant$1.15
10.64%
-
ZRO Échangez maintenant$1.86
8.56%
-
PUMP Échangez maintenant$0.004253
7.66%
-
LIT Échangez maintenant$3.32
7.51%
-
VVV Échangez maintenant$22.62
6.18%
-
NIGHT Échangez maintenant$0.04218
5.43%
- Midterms américains, marchés de prédiction et courses aux cryptomonnaies : un pari à enjeux élevés sur l'avenir de Washington
- 2026-11-04 04:30:22
- Actifs numériques, finance mondiale et IA : franchir la prochaine frontière à DavosWeb3 et au-delà
- 2026-11-04 04:30:22
- Le prix de l’Avalanche AVAX baisse au milieu de problèmes plus larges du marché ; L’intérêt institutionnel reste fort
- 2026-11-03 12:35:02
- Pourquoi le prix quantitatif est-il en baisse ? Une plongée en profondeur dans la récente glissade de QNT au milieu de la nervosité du marché
- 2026-11-03 12:55:01
- Analyse du graphique des prix XRP d'Egrag Crypto : êtes-vous prêt pour la « plus grande vague 3 » ?
- 2026-11-03 01:15:01
- La société mère de Bed Bath & Beyond soutient l'accord SPAC d'une valorisation de 350 millions de dollars de tZERO : ce que les New-Yorkais doivent savoir
- 2026-11-03 01:15:01
Connaissances connexes
Comment calculer le coût total de détention d'une position à terme BTCUSDT
Oct 26,2026 at 04:06am
Composantes du coût total des positions à terme BTCUSDT 1. Le coût total de détention d’une position à terme BTCUSDT comprend à la fois les frais expl...
Comment surveiller ensemble les taux de financement XRPUSDT et les intérêts ouverts
Oct 20,2026 at 06:39pm
Mécanique du taux de financement sur les contrats perpétuels XRPUSDT 1. Les taux de financement sur les swaps perpétuels XRPUSDT sont calculés toutes ...
Comment définir un stop-loss au seuil de rentabilité sur les contrats à terme perpétuels SOLUSDT
Oct 23,2026 at 09:34am
Comprendre les mécanismes de stop-loss au seuil de rentabilité 1. Un stop-loss au seuil de rentabilité est un ordre dynamique qui s'ajuste à la ha...
Comment utiliser le calculateur Binance Futures pour les transactions ETHUSDT
Oct 21,2026 at 02:00am
Comprendre l'interface du calculateur Binance Futures 1. La calculatrice est intégrée directement dans l'interface de trading Binance Futures,...
Comment vérifier le prix BTCUSDT avant une liquidation à terme
Oct 26,2026 at 12:20pm
Comprendre le prix Mark dans les contrats à terme BTCUSDT 1. Le prix mark est une valeur calculée utilisée par les bourses pour éviter les liquidation...
Comment ajuster l'effet de levier sur un contrat perpétuel TRUMPUSDT
Oct 30,2026 at 10:19pm
Comprendre la mécanique des contrats perpétuels TRUMPUSDT 1. TRUMPUSDT est un contrat à terme perpétuel thématique coté sur plusieurs bourses de produ...
Comment calculer le coût total de détention d'une position à terme BTCUSDT
Oct 26,2026 at 04:06am
Composantes du coût total des positions à terme BTCUSDT 1. Le coût total de détention d’une position à terme BTCUSDT comprend à la fois les frais expl...
Comment surveiller ensemble les taux de financement XRPUSDT et les intérêts ouverts
Oct 20,2026 at 06:39pm
Mécanique du taux de financement sur les contrats perpétuels XRPUSDT 1. Les taux de financement sur les swaps perpétuels XRPUSDT sont calculés toutes ...
Comment définir un stop-loss au seuil de rentabilité sur les contrats à terme perpétuels SOLUSDT
Oct 23,2026 at 09:34am
Comprendre les mécanismes de stop-loss au seuil de rentabilité 1. Un stop-loss au seuil de rentabilité est un ordre dynamique qui s'ajuste à la ha...
Comment utiliser le calculateur Binance Futures pour les transactions ETHUSDT
Oct 21,2026 at 02:00am
Comprendre l'interface du calculateur Binance Futures 1. La calculatrice est intégrée directement dans l'interface de trading Binance Futures,...
Comment vérifier le prix BTCUSDT avant une liquidation à terme
Oct 26,2026 at 12:20pm
Comprendre le prix Mark dans les contrats à terme BTCUSDT 1. Le prix mark est une valeur calculée utilisée par les bourses pour éviter les liquidation...
Comment ajuster l'effet de levier sur un contrat perpétuel TRUMPUSDT
Oct 30,2026 at 10:19pm
Comprendre la mécanique des contrats perpétuels TRUMPUSDT 1. TRUMPUSDT est un contrat à terme perpétuel thématique coté sur plusieurs bourses de produ...
Voir tous les articles














