stringtranslate.com

Tipo que acepta valores NULL

Los tipos que aceptan valores nulos son una característica de algunos lenguajes de programación que permiten que un valor se establezca en el valor especial NULL en lugar de los valores posibles habituales del tipo de datos . En lenguajes con tipado estático, un tipo que acepta valores nulos es un tipo de opción , [ cita requerida ] mientras que en lenguajes con 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 utiliza con frecuencia para representar un valor faltante o un valor no válido, como el de una función que no pudo devolver un valor o un campo faltante en una base de datos, como NULL en SQL . En otras palabras, NULL no está definido.

Los tipos primitivos como los números enteros y los booleanos generalmente no pueden ser nulos, pero los tipos nulos correspondientes (entero nulo y booleano nulo, respectivamente) también pueden asumir el valor NULO. [ jerga ] [ cita necesaria ] Esto se puede representar en lógica ternaria como FALSO, NULO, VERDADERO como en la 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 ninguna noción de decir que la variable está vacía, una necesidad que ocurre en muchas circunstancias. Esta necesidad se puede lograr con un tipo que acepta valores nulos. En lenguajes de programación como C# 2.0, un entero que acepta valores nulos, 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 nulos se pueden definir mediante una biblioteca externa [3] como nuevos tipos (por ejemplo, NullableInteger, NullableBoolean). [4]

Una variable booleana hace que el efecto sea más claro. Sus valores pueden ser "verdaderos" o "falsos", mientras que un valor booleano que admita valores nulos también puede contener una representación de "indeciso". Sin embargo, la interpretación o el tratamiento de una operación lógica que involucre a una variable de este tipo depende del lenguaje.

En comparación con los punteros nulos

Por el contrario, los punteros a objetos pueden establecerse 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 que admiten valores NULL fueron inventadas por CAR Hoare en 1965 como parte del lenguaje Algol W. Hoare luego describió su invención como un "error de mil millones de dólares". [5] Esto se debe a que los punteros a objetos 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 cuando el puntero a objeto es 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 que aceptan valores nulos para valores escalares. [ cita requerida ]

En comparación con los 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 extiende el concepto de tipo que acepta valores null, proviene de los tipos de opción , que imponen un manejo explícito del caso excepcional.

Soporte de idiomas

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

Los lenguajes tipados estáticamente con soporte nativo para valores nulos incluyen:

Los lenguajes tipados estáticamente con soporte para la biblioteca null incluyen:

Los lenguajes tipados dinámicamente con valores nulos incluyen:

Véase 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 para desarrolladores: tipos nulos". Nullabletypes.sourceforge.net . Consultado el 19 de agosto de 2013 .
  4. ^ "NullableTypes". 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. ^ BillWagner. "Tipos de valores que aceptan valores NULL - Referencia de C#". docs.microsoft.com . Consultado el 5 de octubre de 2021 .
  8. ^ "Seguridad de sonido nulo | Dart".
  9. ^ "Seguridad nula - Lenguaje de programación Kotlin".
  10. ^ KathleenDollard. "Tipos de valores que aceptan valores NULL - Visual Basic". docs.microsoft.com . Consultado el 5 de octubre de 2021 .
  11. ^ "PHP: RFC: tipos_anulables".
  12. ^ "Constantes integradas — Documentación de Python 3.9.5".
  13. ^ "Tipos · el lenguaje Julia".