Menu
CoddyTech

Adicionando e removendo

Parte da seção Lógica e fluxo do Journey de GDScript da Coddy. Lição 33 de 78.

Para adicionar um membro, atribua true à sua chave. Adicionar um membro que já está no conjunto não altera nada, então, quando precisar saber se ele é novo, verifique primeiro com has():

var inventory := {"rope": true}
if inventory.has("torch"):
	print("Already have torch")
else:
	inventory["torch"] = true
	print("Added torch")

Para remover um membro, chame erase(). Ele retorna true quando o membro foi removido e false quando não estava no conjunto. A ausência de um membro nunca é um erro:

print(inventory.erase("rope")) # true
print(inventory.erase("map")) # false
print(inventory) # { "torch": true }

Como erase() retorna um booleano, você pode usá-lo diretamente como condição: if inventory.erase("map"): executa seu bloco somente quando "map" era um membro.

clear() remove todos os elementos, size() conta quantos há e is_empty() é true para um conjunto sem elementos.

challenge icon

Desafio

Fácil

O programa lê comandos, um por linha, até a linha done. Cada comando é add ITEM ou remove ITEM. O código inicial já divide cada comando em action e item.

  • Para add: se o item for novo, adicione-o ao conjunto inventory e imprima Added ITEM. Caso contrário, imprima Already have ITEM.
  • Para remove: se o item estiver no conjunto, remova-o e imprima Removed ITEM. Caso contrário, imprima No ITEM to remove.

Depois de done, imprima Inventory: seguido dos elementos unidos por , , ou Inventory: empty quando o conjunto estiver vazio. Para a entrada:

add torch
add rope
add torch
remove map
remove rope
done

a saída é:

Added torch
Added rope
Already have torch
No map to remove
Removed rope
Inventory: torch

Experimente você mesmo

extends Node

func _ready():
	var inventory := {}
	while true:
		var command := OS.read_string_from_stdin()
		if command == "done":
			break
		var parts := command.split(" ")
		var action := parts[0]
		var item := parts[1]
		# Adicione ou remova o item

	# Imprima o inventário
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e fluxo

Pratique por conta própria: Compilador de GDScript online