stringtranslate.com

tipo que acepta valores NULL

Los tipos que admiten valores NULL son una característica de algunos lenguajes de programación que permiten establecer un valor en el valor especial NULL en lugar de los posibles valores habituales del tipo de datos . En lenguajes de tipado estático, un tipo que acepta valores NULL es un tipo de opción [ cita requerida ] , mientras que en lenguajes de tipado dinámico (donde los valores tienen tipos, pero las variables no), se proporciona un comportamiento equivalente al tener un único valor nulo.

NULL se usa con frecuencia para representar un valor faltante o un valor no válido, como el de una función que no pudo regresar o un campo faltante en una base de datos, como en NULL en SQL . En otras palabras, NULL no está definido.

Los tipos primitivos como los enteros y booleanos generalmente no pueden ser nulos, pero los tipos anulables correspondientes (entero anulable y booleano anulable, respectivamente) también pueden asumir el valor NULL. [ jerga ] [ cita necesaria ] Esto se puede representar en lógica ternaria como FALSO, NULO, VERDADERO como en lógica de tres valores .

Ejemplo

Una variable entera puede representar números enteros, pero 0 (cero) es un caso especial porque 0 en muchos lenguajes de programación puede significar "falso". Además, esto no nos da la noción de decir que la variable está vacía, algo que ocurre en muchas circunstancias. Esta necesidad se puede lograr con un tipo que acepta valores NULL. En lenguajes de programación como C# 2.0, un entero que acepta valores NULL, por ejemplo, se puede declarar mediante un signo de interrogación (int? x). [1] [2] : 46  En lenguajes de programación como C# 1.0, los tipos que aceptan valores NULL se pueden definir mediante una biblioteca externa [3] como tipos nuevos (por ejemplo, NullableInteger, NullableBoolean). [4]

Una variable booleana hace que el efecto sea más claro. Sus valores pueden ser "verdadero" o "falso", mientras que un booleano que acepta valores NULL también puede contener una representación de "indeciso". Sin embargo, la interpretación o tratamiento de una operación lógica que involucra dicha variable depende del idioma.

Comparado con punteros nulos

Por el contrario, los punteros a objetos se pueden establecer en NULL de forma predeterminada en la mayoría de los lenguajes comunes, lo que significa que el puntero o la referencia no apunta a ninguna parte, que no se asigna ningún objeto (la variable no apunta a ningún objeto). Las referencias anulables fueron inventadas por CAR Hoare en 1965 como parte del lenguaje Algol W. Hoare describió más tarde su invento como un "error de miles de millones de dólares". [5] Esto se debe a que los punteros de objeto que pueden ser NULL requieren que el usuario verifique el puntero antes de usarlo y requieren un código específico para manejar el caso en que el puntero de objeto sea NULL.

Java tiene clases que corresponden a valores escalares, como Integer, Boolean y Float. Combinado con el autoboxing (conversión automática basada en el uso entre objeto y valor), esto permite efectivamente variables anulables para valores escalares. [ cita necesaria ]

Comparado con tipos de opciones

Las implementaciones de tipos que aceptan valores NULL generalmente se adhieren al patrón de objeto nulo .

Existe un concepto más general y formal que amplía el concepto de tipo anulable, proviene de los tipos de opciones , que imponen un manejo explícito del caso excepcional.

Ayuda de idioma

Los siguientes lenguajes de programación admiten tipos que aceptan valores NULL.

Los lenguajes escritos estáticamente con soporte nativo nulo incluyen:

Los lenguajes escritos estáticamente con soporte de biblioteca nula incluyen:

Los lenguajes escritos dinámicamente con nulo incluyen:

Ver también

Referencias

  1. ^ "Tipos que aceptan valores NULL (C#)". msdn.microsoft.com . Consultado el 19 de agosto de 2013 .
  2. ^ ab Skeet, Jon (23 de marzo de 2019). C# en profundidad . Manning. ISBN 978-1617294532.
  3. ^ "(luKa) Zona de desarrolladores: NullableTypes". Nullabletypes.sourceforge.net . Consultado el 19 de agosto de 2013 .
  4. ^ "Tipos anulables". Nullabletypes.sourceforge.net . Consultado el 19 de agosto de 2013 .
  5. ^ Tony Hoare (2009). "Referencias nulas: el error de mil millones de dólares". QCon Londres.
  6. ^ "Tipo opcional: lenguaje de programación Ballerina".
  7. ^ Bill Wagner. "Tipos de valores que admiten valores NULL: referencia de C#". docs.microsoft.com . Consultado el 5 de octubre de 2021 .
  8. ^ "Sonido nulo de seguridad | Dardo".
  9. ^ "Seguridad nula: lenguaje de programación Kotlin".
  10. ^ KathleenDollard. "Tipos de valores que admiten valores NULL: Visual Basic". docs.microsoft.com . Consultado el 5 de octubre de 2021 .
  11. ^ "PHP: RFC: tipos_nullables".
  12. ^ "Constantes integradas: documentación de Python 3.9.5".
  13. ^ "Tipos · el idioma de Julia".