図書館レポート
CoddyのSwiftジャーニー「オブジェクト指向プログラミング」セクションの一部。レッスン 54/57。
チャレンジ
中級REPORT コマンドを追加してください。前の手順までにあったすべてのコマンドが、以前とまったく同じように動作し続けるようにしてください。
REPORT:books: 3, borrowed: 1と返答し、その後にメンバーごとにアルファベット順で1行ずつ出力します。タイトルは借りた順に並べ、ada: Dune, Emmaのようにします。借りた本がない場合はbo: noneのようにします。
提供されたコードは、入力された各行を library.handle(_:) に渡し、返された各返答をそれぞれ独立した行に出力します。メンバー名は小文字のみの1語で、書籍IDは整数であり、入力にはここまでに説明したコマンドだけが含まれます。それ以外のコマンドには unknown command と返答します。
コードは Book.swift、Member.swift、および Library.swift に記述します。main.swift には提供された入出力コードが含まれており、編集できません。
自分で試してみよう
// 提供された入出力コード: そのままにしておく
var input: [String] = []
while let line = readLine() { input.append(line) }
let library = Library()
for line in input {
for reply in library.handle(line) { print(reply) }
}
オブジェクト指向プログラミングのすべてのレッスン
自分で練習してみよう: Swiftプレイグラウンド