外部インタフェース/API | ![]() ![]() |
1. 変更するエントリを見つけて確認
pb_change
に渡される引数は、Properties
オブジェクトpb_htable
と要求されるエントリに対するname
キーです。関数pb_change
は、name
キーを使ってpb_htable
についてget
を呼び出します。ここで、空白をアンダースコアに変更するためにpb_keyfilter
が呼ばれます。get
メソッドは、エントリ(あるいはエントリが見つからない場合はnull
)を変数entry
に出力します。pb_change
は、isempty
を呼び出してエントリが空かどうかを決定します。エントリが空の場合は、pb_change
は名前が電話帳に追加されるというメッセージを表示し、ユーザはエントリに対して電話番号を入力することができます。
else
文でエントリが見つかった場合は、pb_change
はpb_display
を呼び出してエントリを表示します。その後input を使って代わりのエントリを確認します。ユーザがy
以外を入力した場合は、関数はリターンします。
function pb_change(pb_htable,name) entry = pb_htable.get(pb_keyfilter(name)); if isempty(entry) disp(sprintf('The name %s is not in the phone book', name)); return; else pb_display(entry); r = input('Replace phone numbers in this entry (y/n)? ','s'); if r ~= 'y' return; end; end;
2. 新規の電話番号を入力し電話帳のエントリを変更
pb_change
は、disp
を使って新規の電話番号の入力のためのプロンプトを表示します。その後pb_change
は、「エントリを追加のために入力」で説明したのと同じステートメントを使って、データを変数entry
に入力します。
その後、既存のエントリと新規のエントリを置き換えるために、pb_change
は(フィルタされた)キーname
と新規エントリを使ってpb_htable
についてput
を呼び出します。その後で、エントリが変更されたことを示すメッセージを表示します。
disp 'Type in the new phone number(s), one per line.' disp 'To complete the entry, type an extra Enter.' disp(sprintf(':: %s', name)); entry=[name '^']; while 1 line = input(':: ','s'); if isempty(line) break; else entry=[entry line '^']; end; end; pb_htable.put(pb_keyfilter(name),entry); disp ' ' disp(sprintf('The entry for %s has been changed', name));
![]() | 関数pb_removeの説明 | 関数pb_listallの説明 | ![]() |