Menu
CoddyTech

添加学生

本课属于 Coddy GDScript 学习旅程的“逻辑与流程”单元。第 43 课,共 78 课。

challenge icon

挑战

简单

将学生添加到记录中。保留你在前面步骤中写的所有内容。

1. 函数。在 _ready() 下方,编写 add_student(student_name: String, age: int, courses: Array) -> void:

  • 如果 student_records 中已经有这个名字,就打印 Student '<name>' already exists. 并返回。
  • 否则,将这些课程组成一个集合(一个字典,其中每门课程都是一个键,值为 true),并将学生以其姓名为键存储为字典,其中包含三个键:"age"(年龄)、"grades"(空数组)和 "courses"(课程集合)。然后打印 Student '<name>' added successfully.

2. 命令。命令 add Alice 20 Math Physics 包含姓名、年龄和任意数量的课程。在 match 中、["show"] 上方添加这个分支:

["add", var student, var age, ..]:
	add_student(student, int(age), parts.slice(3))

.. 可让模式匹配后续的课程,而 parts.slice(3) 是这些课程组成的数组。对于以下命令

add Alice 20 Math Physics
add Bob 22 Biology Chemistry
show
exit

输出为:

Student 'Alice' added successfully.
Student 'Bob' added successfully.
{ "Alice": { "age": 20, "grades": [], "courses": { "Math": true, "Physics": true } }, "Bob": { "age": 22, "grades": [], "courses": { "Biology": true, "Chemistry": true } } }
Goodbye!

亲手试试

extends Node

# 每个学生:name -> {"age": int, "grades": Array, "courses":课程名称的集合}
var student_records := {}

func _ready():
	while true:
		var parts := Array(OS.read_string_from_stdin().split(" ", false))
		match parts:
			["show"]:
				print(student_records)
			["exit"]:
				print("Goodbye!")
				break

逻辑与流程中的所有课

自己练习: GDScript 在线编译器