Godot 4 Diccionarios en GDScript

Godot 4 Diccionarios en GDScript

En este tutorial aprenderemos que son los diccionarios en GDScript y cuáles son sus características, además crearemos algunos diccionarios en Godot 4 📚

Índice
  1. ¿Qué son los diccionarios en programación?
  2. Características de los Diccionarios
  3. ¿Para qué sirven los diccionarios en programación?
  4. Crear Un Diccionario en GDScript y Godot
  5. Obtener Un Valor De Un Diccionario en GDScript
  6. Obtener Un Valor De Un Diccionario Con Guiones O Espacios
  7. Obtener un valor de un diccionario con get( ) en GDScript
  8. Obtener un valor de un Diccionario dentro de otro Diccionario en GDScript
  9. Video Sobre Godot 4 Diccionarios en GDScript

¿Qué son los diccionarios en programación?

Un diccionario en programación es una estructura de datos que permite almacenar cualquier tipo de dato, desde cadenas de texto o caracteres hasta números enteros, con decimales, arrays e incluso otros diccionarios.

Los Diccionarios en GDScript son algo similares a los arreglos, pero los diccionarios tienen una llave y un valor como se puede ver en el siguiente ejemplo

var my_dictionary : Dictionary = {
	"key" : "value",
	"llave" : "valor",
	'id': 1
}

Características de los Diccionarios

  • Un diccionario puede ser visto como una colección de llaves, y cada llave tiene un valor. 
  • Las llaves no están ordenadas y no hay llaves repetidas
  • La única manera de acceder a un valor es a través de su llave.
Ejemplo de Diccionarios en Programación
Ejemplo de Diccionarios en Programación

¿Para qué sirven los diccionarios en programación?

Como pudiste ver en el ejemplo anterior, se pueden utilizar para cosas sencillas como:

  • Guardar múltiples datos dentro de una variable.
  • Crear tablas de precios
  • Crear tablas como en Excel.
  • Guardar los datos de nuestros programas.
  • Traducir nuestros juegos
  • Hacer que nuestros juegos sean multiplataforma y se conecten a internet

Crear Un Diccionario en GDScript y Godot

Es fácil crear un diccionario, solo tenemos que agregar una llave de cierre y otra de apertura

Dentro agregaremos las llaves y valores, se recomienda que las llaves sean textos entre comillas

Y los valores de las llaves pueden ser de cualquier tipo, como se ve a continuación podemos agregar un valor de tipo String y otro de tipo entero

var my_dictionary : Dictionary = {
	"key" : "value",
	'id': 1
}


func _ready():
	print(my_dictionary)

Si ejecutamos el código podremos ver el siguiente resultado en consola

{ "key": "value", "id": 1 }

Obtener Un Valor De Un Diccionario en GDScript

Para obtener el valor de un diccionario, podemos hacerlo de varias formas

La primera es usando un punto, después del diccionario, pero esta forma no es muy recomendada, porque te dará un error si intentas acceder a llaves con un espacio vacío o un guion.

Si intentamos acceder al valor que tiene un guion, funcionara como una resta, por eso está comentada la línea 12, pero puedes descomentarla y ver como funciona.

Y si intentamos acceder al que tiene un espacio vacío, nos mostrara un error, por eso está comentada la línea 13, pero puedes descomentarla y ver como funciona.

var my_dictionary : Dictionary = {
	"key" : "value",
	'id': 1,
	'id-2': 2,
	'id 3': 3,
}

func _ready():
	# Puedes obtener el valor usando la key (llave) de esta forma
	print(my_dictionary.id )
	# Pero no servirá para keys con guiones o espacios
	#print(my_dictionary.id-2 )
	#print(my_dictionary.id 3 )

En este caso si ejecutamos el código podremos ver el siguiente resultado en consola

1

Obtener Un Valor De Un Diccionario Con Guiones O Espacios

Para obtener el valor de un diccionario cuando tiene espacios o guiones, usamos la siguiente forma

Es como si accediéramos al valor como si fuera un array

var my_dictionary : Dictionary = {
	"key" : "value",
	'id': 1,
	'id-2': 2,
	'id 3': 3,
}

func _ready():	
	# Puedes usar esta forma para acceder a keys con guiones o espacios
	print(my_dictionary['id-2'] )
	print(my_dictionary['id 3'] )
	
	# Pero si accedes a un valor que no existe ocurrirá un error
	# Invalid get index 'id-99' (on base: 'Dictionary').
	#print(my_dictionary['id-99'] )

Pero si accedes a un valor que no existe aparecerá el siguiente error y se detendrá la ejecución del programa

Invalid get index 'id-99' (on base: 'Dictionary').

Si ejecutamos el código anterior podremos ver el siguiente resultado en consola

2
3

Obtener un valor de un diccionario con get( ) en GDScript

Otra forma mejor de acceder a los datos de un diccionario, es usando el método get()

Funciona como el ejemplo anterior, solo hay que agregar la llave dentro del método get()

Y en este caso si accedes a un valor que no existe, obtendrás null, pero el programa seguirá funcionando

var my_dictionary : Dictionary = {
	"key" : "value",
	'id': 1,
	'id-2': 2,
}

func _ready():
	# También puedes usar el metodo get para obtener un valor
	print(my_dictionary.get('id-2') )
	# Si accedes a una key que no existe, con este método obtendrás un null
	#print(my_dictionary.get('id-99') )

Si ejecutamos el código anterior podremos ver el siguiente resultado en consola

2

Obtener un valor de un Diccionario dentro de otro Diccionario en GDScript

Para acceder al valor de un diccionario dentro de otro, podemos hacerlo de varias maneras como si fuera un arreglo, aquí tienes un ejemplo de código.

var my_dictionary : Dictionary = {
	"key" : "value",
	'sub_dictionary': {
		'sub_dictionary_key': 'sub_dictionary_value'
	}
}

func _ready() -> void:
  #Asi se accede a un diccionario dentro de otro 
	print(my_dictionary['sub_dictionary']['sub_dictionary_key'] )
	# Otra Forma
	print(my_dictionary.get('sub_dictionary')['sub_dictionary_key'] )

Si ejecutamos el código anterior podremos ver el siguiente resultado en consola

sub_dictionary_value
sub_dictionary_value

Video Sobre Godot 4 Diccionarios en GDScript

Con este video podrás entender mejor como usar Diccionarios en GDScript y tendrás más información sobre como acceder a los valores de un diccionario en Godot.

En próximos tutoriales aprenderemos sobre las constantes en programación.

Continúa viendo el Curso GDScript Para Godot 4

Comentarios sobre Godot 4 Diccionarios en GDScript

Subir