Saltar al contenido
tipos-y-estructuras.en · devschool

Tipos de datos y estructuras en inglés

Lección 3 de 23 · 10 min de lectura · Actualizado el

En esta lección
  1. Los tipos básicos
  2. Estructuras de datos
  3. Verbos para tipos: conversiones y comprobaciones
  4. Números y operaciones
  5. Errores frecuentes
  6. Resumen

Cada valor de un programa tiene un tipo (type): un número, un texto, una lista… Los nombres de esos tipos y de las estructuras que agrupan datos son en inglés en todos los lenguajes, y los verás en errores, en documentación y en conversaciones de trabajo. Esta lección te enseña a reconocerlos, pronunciarlos y usarlos en frases.

Los tipos básicos

Los primitive types (/prímitiv táips/, tipos primitivos) son los ladrillos más simples. Los nombres cambian un poco según el lenguaje, pero la idea es la misma.

InglésPronunciaciónSignificadoEjemplo
string/strín/ (la g casi no se oye)cadena de texto"hello"
number/námber/número42, 3.14
integer (int)/íntiyer/, /int/número entero7
float/flóut/número con decimales2.5
double/dábol/decimal de doble precisión (Java, C)3.14159
boolean (bool)/búlian/, /bul/booleano: verdadero o falsotrue, false
character (char)/cáriquter/, /car/carácter, una sola letra'a'
null/nal/“nada”, valor vacío intencionadonull
undefined/andifáind/indefinido, sin valor asignado (JS)undefined
void/void/“nada”, la función no devuelve valorvoid main()

Fíjate en boolean: se pronuncia /búlian/ y se escribe con b minúscula en el código (boolean), porque es un tipo, no una persona. El nombre viene del matemático George Boole.

En JavaScript puedes preguntar el tipo con typeof. Aquí tienes salidas reales:

console.log(typeof "hi");        // string
console.log(typeof 42);          // number
console.log(typeof true);        // boolean
console.log(typeof undefined);   // undefined
console.log(typeof null);        // object
console.log(typeof {});          // object
console.log(typeof (() => 1));   // function

Nota: typeof null devuelve "object" en JavaScript. Es un fallo histórico del lenguaje que se mantiene por compatibilidad. No significa que null sea un objeto.

En Python, la misma pregunta se hace con type():

print(type("a"))   # <class 'str'>
print(type(1))     # <class 'int'>
print(type(1.5))   # <class 'float'>
print(type(True))  # <class 'bool'>
print(type(None))  # <class 'NoneType'>

Aquí str es la abreviatura de string, int de integer y bool de boolean. Python usa None en vez de null.

null, undefined, none, nil, empty

Distintas palabras para “no hay nada”, que conviene separar:

PalabraDóndeSignifica
nullJS, Java, PHP, SQLValor “sin valor” a propósito
undefinedJSUna variable declarada pero sin valor, o una propiedad que no existe
NonePythonEl “nada” de Python
NULLSQLDato desconocido o ausente
emptyGeneralVacío: un texto "" o una lista [] existen, pero no tienen contenido

Un texto vacío (empty string) no es lo mismo que null: el primero existe y no tiene letras; el segundo ni siquiera tiene valor.

Estructuras de datos

Una data structure (/déita strákcher/) agrupa varios valores. Son las que más aparecen en las conversaciones y los errores.

InglésPronunciaciónSignificadoLenguajes
array/arréi/lista ordenada de elementosJS, Java, PHP
list/list/listaPython, Java (List)
tuple/túpol/ o /tápol/tupla, lista que no se puede cambiarPython
object/óbyect/objeto, pares clave-valor (JS) o instancia (Java)JS, Java
dictionary (dict)/díkshoneri/, /dikt/diccionario, pares clave-valorPython
map/map/mapa, pares clave-valorJS, Java
set/set/conjunto, sin elementos repetidosPython, JS, Java
stack/stak/pila: el último en entrar es el primero en salirGeneral
queue/kiú/cola: el primero en entrar es el primero en salirGeneral
tree/tri/árbolGeneral
graph/graf/grafoGeneral

Un ejemplo en JavaScript con sus salidas reales:

const fruits = ["apple", "pear"];
fruits.push("kiwi");
console.log(fruits.length); // 3
console.log(fruits[0]);     // apple

const user = { name: "Ana", age: 30 };
console.log(user.name);     // Ana
console.log(Object.keys(user)); // [ 'name', 'age' ]

const unique = new Set([1, 1, 2]);
console.log(unique.size);   // 2

Y el equivalente en Python:

fruits = ["apple", "pear"]    # a list
point = (3, 4)                # a tuple
user = {"name": "Ana"}        # a dictionary
unique = {1, 1, 2}            # a set (duplicates are removed)

Cómo se habla de estas estructuras

Cuando comentas el código con alguien, usas expresiones como estas:

Frase en inglésTraducción
an array of stringsun array de textos
a list of usersuna lista de usuarios
an empty arrayun array vacío
the first element / the last elementel primer / el último elemento
the index of the itemel índice del elemento
a key and its valueuna clave y su valor
a key-value pairun par clave-valor
a nested objectun objeto anidado (dentro de otro)
iterate over the listrecorrer la lista
add an item to the arrayañadir un elemento al array

La palabra index se pronuncia /índeks/ y su plural es indexes o indices (/índisis/). Recuerda que casi todos los lenguajes empiezan a contar en zero (/zíro/): el primer elemento está en la posición 0.

Verbos para tipos: conversiones y comprobaciones

Con los tipos también hay acciones específicas. Aprende cómo se nombran en inglés:

InglésPronunciaciónSignificadoEjemplo
convert/konvért/convertirconvert a string to a number
cast/cast/convertir un tipo en otro (en Java: casting)(int) 3.7
parse/pars/analizar un texto y extraer su valorparseInt("12")
stringify/stríngifai/convertir a textoJSON.stringify(obj)
check/chek/comprobarcheck the type
declare/diklér/declarardeclare a variable
assign/asáin/asignarassign a value
initialize/iníshalais/inicializarinitialize the counter

Pruébalo en JavaScript:

console.log(Number("12"));      // 12
console.log(parseInt("12px"));  // 12
console.log(String(5));         // 5
console.log(Boolean(0));        // false
console.log(Number("abc"));     // NaN

El resultado NaN significa Not a Number (/nat e námber/, “no es un número”): aparece cuando conviertes algo que no es un número. Se pronuncia a menudo /nan/.

Cuando los tipos aparecen en errores

Los errores relacionados con tipos son tan comunes que merece la pena ver varios ejemplos:

TypeError: can only concatenate str (not "int") to str

Traducción: “solo se puede concatenar str (no int) con str”. Python te dice que has intentado sumar un texto y un número.

Type 'string' is not assignable to type 'number'.

Traducción: “El tipo ‘string’ no es asignable al tipo ‘number’”. Es un error típico de TypeScript.

incompatible types: String cannot be converted to int

Traducción: “tipos incompatibles: un String no puede convertirse a int”. Es un mensaje de Java. Profundizaremos en Errores por lenguaje.

Números y operaciones

Algunas palabras relacionadas con números:

InglésPronunciaciónSignificadoEjemplo
add / sum/ad/, /sam/sumar / sumaadd two numbers
subtract/sabtrákt/restarsubtract 5
multiply/máltiplai/multiplicarmultiply by 2
divide/diváid/dividirdivide by zero
remainder/riméinder/resto5 % 2 es 1
modulo/módiulo/módulo (el operador %)modulo operator
round/ráund/redondearround to 2 decimals
floor/flor/redondear hacia abajoMath.floor(2.7)
ceiling (ceil)/síling/, /sil/redondear hacia arribaMath.ceil(2.1)
random/rándom/aleatoriorandom number
console.log(5 / 2);             // 2.5
console.log(Math.floor(5 / 2)); // 2
console.log(5 % 2);             // 1
console.log(0.1 + 0.2);         // 0.30000000000000004

El último resultado sorprende, pero es normal: los ordenadores guardan los decimales en binario y a veces no pueden representarlos de forma exacta. Se llama floating-point error (/flóuting point érror/, error de coma flotante).

Errores frecuentes

  • Decir “estring” o “bulean”. Se pronuncian /strín/ y /búlian/. En español tendemos a pronunciar cada letra, pero la g final de string casi no suena.
  • Pensar que list y array son lo mismo siempre. En Python se llama list y en JavaScript array. En Java hay array (tamaño fijo) y List (colección flexible). Aprende el nombre exacto de cada lenguaje.
  • Confundir integer con float. 5 es entero; 5.0 es float. Mezclarlos puede dar resultados inesperados en divisiones.
  • Creer que null y undefined son iguales. En JavaScript son dos valores distintos. Se parecen, pero uno se asigna a propósito y el otro lo pone el lenguaje.
  • Leer tuple como /tupol/ siempre. Hay dos pronunciaciones aceptadas, /túpol/ y /tápol/. Cualquiera sirve.
  • Traducir object como “objeto” sin más. En JavaScript es un conjunto de pares clave-valor; en Java es una instancia de una clase. El contexto decide.

Resumen

ConceptoInglésPronunciación
Textostring/strín/
Número enterointeger / int/íntiyer/, /int/
Decimalfloat/flóut/
Verdadero o falsoboolean/búlian/
Nadanull / undefined / None/nal/, /andifáind/, /nan/
Listaarray / list/arréi/, /list/
Clave-valorobject / dictionary / map/óbyect/, /díkshoneri/, /map/
Sin repetidosset/set/
Pila / colastack / queue/stak/, /kiú/
Conversiónconvert / cast / parse/konvért/, /cast/, /pars/

Ya conoces los nombres. Ahora toca ver lo que se hace con ellos: Verbos del código.

Pon a prueba lo que has aprendido

[Inglés] ¿Qué imprime este código en JavaScript?
console.log(typeof null);

[Inglés] ¿Cómo se pronuncia aproximadamente boolean?

[Inglés] En Python, ¿cómo se llama la estructura de pares clave-valor, como {"name": "Ana"}?

[Inglés] ¿Qué significa el resultado NaN?

¿Te ha quedado claro? Márcala y verás tu progreso en el explorador.