stringtranslate.com

Operador de resolución de alcance

En programación informática , el ámbito es un contexto envolvente donde se asocian valores y expresiones . El operador de resolución de ámbito ayuda a identificar y especificar el contexto al que hace referencia un identificador , en particular especificando un espacio de nombres o una clase . Los usos específicos varían en los distintos lenguajes de programación con las nociones de ámbito. En muchos lenguajes, el operador de resolución de ámbito se escribe ::.

En algunos lenguajes, en particular aquellos influenciados por Modula-3 (incluidos Python y Go ), los módulos son objetos y la resolución de alcance dentro de los módulos es un caso especial del acceso habitual a miembros de objetos, por lo que .se utiliza el operador de método habitual para la resolución de alcance. Otros lenguajes, en particular C++ y Ruby , presentan tanto la resolución de alcance como el acceso a métodos, que interactúan de diversas maneras; consulte los ejemplos a continuación.

C++

clase A { public : static int i ; // el alcance de i es A };      espacio de nombres B { int c = 2 ; } // espacio de nombres B       int A :: i = 4 ; // el operador de alcance se refiere al entero i declarado en la clase A int x = B :: c ; // el operador de alcance se refiere al entero c declarado en el espacio de nombres B        

PHP

En PHP , el operador de resolución de alcance también se llama Paamayim Nekudotayim ( hebreo : פעמיים נקודותיים , pronunciado [paʔaˈmajim nekudoˈtajim] , la segunda palabra es una corrupción coloquial de נקודתיים, pronunciada [nekudaˈtajim] ), que significa “dos dos puntos ” en hebreo.

El nombre "Paamayim Nekudotayim" fue introducido en el motor Zend 0.5 desarrollado por Israel [1] y utilizado en PHP 3. Inicialmente, el mensaje de error simplemente utilizaba el nombre del token interno para , lo que causaba confusión para quienes no hablaban hebreo. Esto se aclaró en PHP 5.4 como se muestra a continuación.::T_PAAMAYIM_NEKUDOTAYIM

$ php  -r  :: Error de análisis: error de sintaxis, '::' inesperado (T_PAAMAYIM_NEKUDOTAYIM)

A partir de PHP 8, el nombre hebreo se ha eliminado del mensaje de error.

$  php  -r  ::Error de análisis: error de sintaxis, token inesperado "::", se esperaba el final del archivo en el código de la línea de comandos en la línea 1


Rubí

En Ruby , la resolución del alcance se puede especificar utilizando la palabra clave del módulo.

Módulo Ejemplo Versión = 1 . 0     clase << self # Estamos accediendo a la clase singleton del módulo def hello ( who = "world" ) "Hola #{ who } " end end end #/Ejemplo           Ejemplo :: hola # => "Hola mundo" Ejemplo ::. hola "hacker" # => "Hola hacker"   Ejemplo :: Versión n.° => 1.0 Ejemplo . Versión n .° NoMethodError  # Esto ilustra la diferencia entre el operador de mensaje (.) y el operador de alcance en Ruby (::) # Podemos usar tanto ::hello como .hello, porque hello es parte del alcance de Example y porque Example # responde al mensaje hello. # # No podemos hacer lo mismo con ::Version y .Version, porque Version está dentro del alcance de Example, pero # Example no puede responder al mensaje Version, ya que no hay un método para responder.

El alcance también se ve afectado por los sigilos que preceden a los nombres de las variables:

Referencias

  1. ^ "Operador de resolución de alcance". Manual de PHP 5. Consultado el 9 de agosto de 2007 .

Enlaces externos