Article de reference

Opérateur de résolution de portée

En programmation informatique , la portée est un contexte englobant dans lequel des valeurs et des expressions sont associées. L' opérateur de résolution de portée permet d'iden...

En programmation informatique , la portée est un contexte englobant dans lequel des valeurs et des expressions sont associées. L' opérateur de résolution de portée permet d'identifier et de spécifier le contexte auquel un identifiant fait référence, notamment en spécifiant un espace de noms ou une classe . Les utilisations spécifiques varient selon les langages de programmation avec les notions de portée. Dans de nombreux langages, l'opérateur de résolution de portée s'écrit ::.

Dans certains langages, notamment ceux influencés par Modula-3 (dont Python et Go ), les modules sont des objets et la résolution de portée au sein des modules est un cas particulier d'accès habituel aux membres d'objets. L'opérateur de méthode habituel .est donc utilisé pour la résolution de portée. D'autres langages, notamment C++ et Ruby , proposent à la fois la résolution de portée et l'accès aux méthodes, qui interagissent de diverses manières ; voir les exemples ci-dessous.

C++

classe A { public : static int i ; // la portée de i est A };
espace de noms B { int c = 2 ; } // espace de noms B
int A :: i = 4 ; // l'opérateur de portée fait référence à l'entier i déclaré dans la classe A int x = B :: c ; // l'opérateur de portée fait référence à l'entier c déclaré dans l'espace de noms B

PHP

En PHP , l'opérateur de résolution de portée est également appelé Paamayim Nekudotayim ( hébreu : פעמיים נקודותיים , prononcé [paʔaˈmajim nekudoˈtajim] , le deuxième mot est une corruption familière de נקודתיים, prononcé [nekudaˈtajim] ), qui signifie « double deux-points » en hébreu.

Le nom « Paamayim Nekudotayim » a été introduit dans le Zend Engine 0.5 développé par Israël PHP 3. Au départ, le message d'erreur utilisait simplement le nom du jeton interne pour le , ce qui causait de la confusion pour les non-hébreux. Cela a été clarifié dans PHP 5.4 comme ci-dessous. ::T_PAAMAYIM_NEKUDOTAYIM

$ php -r :: Erreur d'analyse : erreur de syntaxe, inattendu '::' (T_PAAMAYIM_NEKUDOTAYIM)

À partir de PHP 8, le nom hébreu a été supprimé du message d'erreur

$  php -r :: Erreur d'analyse : erreur de syntaxe, jeton inattendu « :: », fin de fichier attendue dans le code de ligne de commande sur la ligne 1

Rubis

En Ruby , la résolution de portée peut être spécifiée à l'aide du mot-clé module.

module Exemple de version = 1 . 0
classe << self # Nous accédons à la classe singleton du module def hello ( who = "world" ) "Hello #{ who } " end end end #/Exemple
Exemple :: hello # => "Bonjour tout le monde" Exemple . hello "hacker" # => "Bonjour hacker"
Exemple :: Version # => 1.0 Exemple . Version # NoMethodError
# Ceci illustre la différence entre l'opérateur de message (.) et l'opérateur de portée dans Ruby (::) 
# Nous pouvons utiliser à la fois ::hello et .hello, car hello fait partie de la portée de Example et parce que Example 
# répond au message hello. 
# 
# Nous ne pouvons pas faire la même chose avec ::Version et .Version, car Version est dans la portée de Example, mais 
# Example ne peut pas répondre au message Version, car il n'y a pas de méthode avec laquelle répondre.

La portée est également affectée par les sigils qui préfacent les noms de variables :

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index