Tipos de datos y estructuras en inglés
En esta lección
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és | Pronunciación | Significado | Ejemplo |
|---|---|---|---|
| string | /strín/ (la g casi no se oye) | cadena de texto | "hello" |
| number | /námber/ | número | 42, 3.14 |
integer (int) | /íntiyer/, /int/ | número entero | 7 |
| float | /flóut/ | número con decimales | 2.5 |
| double | /dábol/ | decimal de doble precisión (Java, C) | 3.14159 |
boolean (bool) | /búlian/, /bul/ | booleano: verdadero o falso | true, false |
character (char) | /cáriquter/, /car/ | carácter, una sola letra | 'a' |
| null | /nal/ | “nada”, valor vacío intencionado | null |
| undefined | /andifáind/ | indefinido, sin valor asignado (JS) | undefined |
| void | /void/ | “nada”, la función no devuelve valor | void 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 nulldevuelve"object"en JavaScript. Es un fallo histórico del lenguaje que se mantiene por compatibilidad. No significa quenullsea 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:
| Palabra | Dónde | Significa |
|---|---|---|
null | JS, Java, PHP, SQL | Valor “sin valor” a propósito |
undefined | JS | Una variable declarada pero sin valor, o una propiedad que no existe |
None | Python | El “nada” de Python |
NULL | SQL | Dato desconocido o ausente |
empty | General | Vací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és | Pronunciación | Significado | Lenguajes |
|---|---|---|---|
| array | /arréi/ | lista ordenada de elementos | JS, Java, PHP |
| list | /list/ | lista | Python, Java (List) |
| tuple | /túpol/ o /tápol/ | tupla, lista que no se puede cambiar | Python |
| object | /óbyect/ | objeto, pares clave-valor (JS) o instancia (Java) | JS, Java |
dictionary (dict) | /díkshoneri/, /dikt/ | diccionario, pares clave-valor | Python |
| map | /map/ | mapa, pares clave-valor | JS, Java |
| set | /set/ | conjunto, sin elementos repetidos | Python, JS, Java |
| stack | /stak/ | pila: el último en entrar es el primero en salir | General |
| queue | /kiú/ | cola: el primero en entrar es el primero en salir | General |
| tree | /tri/ | árbol | General |
| graph | /graf/ | grafo | General |
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és | Traducción |
|---|---|
an array of strings | un array de textos |
a list of users | una lista de usuarios |
an empty array | un array vacío |
the first element / the last element | el primer / el último elemento |
the index of the item | el índice del elemento |
a key and its value | una clave y su valor |
a key-value pair | un par clave-valor |
a nested object | un objeto anidado (dentro de otro) |
iterate over the list | recorrer la lista |
add an item to the array | añ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és | Pronunciación | Significado | Ejemplo |
|---|---|---|---|
| convert | /konvért/ | convertir | convert 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 valor | parseInt("12") |
| stringify | /stríngifai/ | convertir a texto | JSON.stringify(obj) |
| check | /chek/ | comprobar | check the type |
| declare | /diklér/ | declarar | declare a variable |
| assign | /asáin/ | asignar | assign a value |
| initialize | /iníshalais/ | inicializar | initialize 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és | Pronunciación | Significado | Ejemplo |
|---|---|---|---|
| add / sum | /ad/, /sam/ | sumar / suma | add two numbers |
| subtract | /sabtrákt/ | restar | subtract 5 |
| multiply | /máltiplai/ | multiplicar | multiply by 2 |
| divide | /diváid/ | dividir | divide by zero |
| remainder | /riméinder/ | resto | 5 % 2 es 1 |
| modulo | /módiulo/ | módulo (el operador %) | modulo operator |
| round | /ráund/ | redondear | round to 2 decimals |
| floor | /flor/ | redondear hacia abajo | Math.floor(2.7) |
ceiling (ceil) | /síling/, /sil/ | redondear hacia arriba | Math.ceil(2.1) |
| random | /rándom/ | aleatorio | random 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
gfinal destringcasi no suena. - Pensar que
listyarrayson lo mismo siempre. En Python se llamalisty en JavaScriptarray. En Java hayarray(tamaño fijo) yList(colección flexible). Aprende el nombre exacto de cada lenguaje. - Confundir
integerconfloat.5es entero;5.0es float. Mezclarlos puede dar resultados inesperados en divisiones. - Creer que
nullyundefinedson iguales. En JavaScript son dos valores distintos. Se parecen, pero uno se asigna a propósito y el otro lo pone el lenguaje. - Leer
tuplecomo /tupol/ siempre. Hay dos pronunciaciones aceptadas, /túpol/ y /tápol/. Cualquiera sirve. - Traducir
objectcomo “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
| Concepto | Inglés | Pronunciación |
|---|---|---|
| Texto | string | /strín/ |
| Número entero | integer / int | /íntiyer/, /int/ |
| Decimal | float | /flóut/ |
| Verdadero o falso | boolean | /búlian/ |
| Nada | null / undefined / None | /nal/, /andifáind/, /nan/ |
| Lista | array / list | /arréi/, /list/ |
| Clave-valor | object / dictionary / map | /óbyect/, /díkshoneri/, /map/ |
| Sin repetidos | set | /set/ |
| Pila / cola | stack / queue | /stak/, /kiú/ |
| Conversión | convert / 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
¿Te ha quedado claro? Márcala y verás tu progreso en el explorador.