Menu
CoddyTech

Thêm và xóa

Thuộc phần Logic và luồng chương trình trong hành trình GDScript của Coddy. Bài học 33 trên 78.

Để thêm một phần tử, hãy gán true cho khóa của phần tử đó. Thêm một phần tử đã có trong tập hợp sẽ không làm thay đổi gì. Vì vậy, nếu bạn cần biết phần tử đó có mới hay không, hãy kiểm tra trước bằng has():

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

Để xóa một phần tử, hãy gọi erase(). Hàm này trả về true khi phần tử đã được xóa và false khi phần tử đó không có trong tập hợp. Phần tử không tồn tại không bao giờ gây ra lỗi:

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

Vì erase() trả về giá trị boolean, bạn có thể dùng trực tiếp giá trị đó làm điều kiện: if inventory.erase("map"): chỉ chạy khối lệnh khi "map" là một phần tử.

clear() xóa mọi phần tử, size() đếm số phần tử và is_empty() có giá trị true khi tập hợp không có phần tử nào.

challenge icon

Thử thách

Dễ

Chương trình đọc các lệnh, mỗi lệnh trên một dòng, cho đến dòng done. Mỗi lệnh có dạng add ITEM hoặc remove ITEM. Code khởi đầu đã tách mỗi lệnh thành action và item.

  • Với add: nếu món đồ chưa có, hãy thêm nó vào tập hợp inventory và in ra Added ITEM. Nếu không, hãy in ra Already have ITEM.
  • Với remove: nếu món đồ có trong tập hợp, hãy xóa nó và in ra Removed ITEM. Nếu không, hãy in ra No ITEM to remove.

Sau done, in ra Inventory: theo sau là các phần tử được nối bằng , , hoặc Inventory: empty khi tập hợp trống. Với đầu vào:

add torch
add rope
add torch
remove map
remove rope
done

đầu ra là:

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

Tự làm thử

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]
		# Thêm hoặc xóa vật phẩm

	# In ra danh sách vật phẩm
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch GDScript online