项目概览
本课属于 Coddy GDScript 学习旅程的“面向对象编程”单元。第 56 课,共 65 课。
挑战
中等在这个项目中,你将分六步构建一个图书馆管理系统:图书馆、书籍和用户、借阅、搜索、统计和归还。每一步都从上一步的文件开始。
这一步会在 library.gd 中创建 Library 类。初始代码已经声明了它的三个属性:
library_name:图书馆的名称books和users:两个初始为空的Array[String]。目前,它们存放书名和用户名。
完成这两个方法:
- 构造函数
_init(library_name)将名称存储在属性library_name中。 _to_string()返回NAME Library (books: N, users: M),其中N和M分别是两个数组的长度。
提供的代码会从第一行读取图书馆名称,然后逐行读取命令:book TITLE 和 user NAME 会将内容追加到数组中,info 会输出三个属性,show 会输出图书馆。对于以下输入:
Community
info
book Dune
user Ada
show输出为:
Name: Community
Books: 0
Users: 0
Community Library (books: 1, users: 1)你的代码应写在 library.gd 中。main.gd 包含提供的输入/输出代码,不能编辑。
亲手试试
extends Node
func _ready():
# 提供的输入输出代码:保持原样
var library := Library.new(OS.read_string_from_stdin())
var line := OS.read_string_from_stdin()
while line != "":
var parts := line.split(" ", true, 1)
match parts[0]:
"book":
library.books.append(parts[1])
"user":
library.users.append(parts[1])
"info":
print("Name: ", library.library_name)
print("Books: ", library.books.size())
print("Users: ", library.users.size())
"show":
print(library)
line = OS.read_string_from_stdin()
面向对象编程中的所有课
自己练习: GDScript 在线编译器