peekは「覗き見する」こと
peek は英語で「ちらっと覗く」という意味の単語です。プログラミングやツールの世界では、データの中身を見るだけで、取り出したり変更したりはしない操作を指す名前としてよく使われます。
正直なところ、最初にこの単語をコードの中で見かけたとき「pick(取り出す)の打ち間違いかな?」と思った人もいるんじゃないでしょうか。でもこれは別物で、むしろ「取り出さない」ことにこそ意味がある名前です。
身近な例で言うと
宅配便の箱が玄関に届いているとします。あなたは箱を開けずに、伝票を見て「中身は本らしい」「送り主は書店」と確認します。箱はそのまま玄関に置いたまま。これが peek です。
一方で箱を開けて中の本を取り出し、箱を潰して捨てたら、それはもう「覗いた」ではなく「取り出した」になります。プログラミングではこちらを pop や read と呼ぶことが多く、peek とは区別されます。
peek(覗く)
中身を確認する。確認したあとも、データはそのままの状態で残っている。何度やっても同じ結果が返る。
pop / take(取り出す)
中身を取り出す。取り出した分だけ元の場所から消えるので、次に同じ操作をすると結果が変わる。
なぜ「覗くだけ」の操作が必要なのか
「見るなら取り出せばいいじゃないか」と思うかもしれません。でも、取り出してしまうと元に戻すのが面倒だったり、そもそも戻せなかったりします。
たとえばレジの行列を思い浮かべてください。「今、先頭に並んでいるのは誰か」を知りたいだけなら、その人を呼び出して会計を済ませる必要はありません。先頭を確認して「あ、まだ準備できてなさそうだな」と判断したら、列はそのままにしておきたい。こういう「判断のために中身を知りたい、でも状態は変えたくない」場面で peek が活きます。
典型的な使われ方のイメージ
データ構造の文脈では、スタック(積み上げた箱のようなデータの置き場)やキュー(行列)に対して「一番上(あるいは先頭)に何があるか」を返すメソッドとして peek という名前がよく使われます。
// スタックの一番上を確認する(取り出さない)
const top = stack.peek();
if (top === "完了") {
// 条件に合うときだけ実際に取り出す
stack.pop();
}
上の例のように、「条件を確認してから、必要なときだけ実際に処理する」という書き方ができるのが peek の便利なところです。もし peek がなければ、いったん取り出して、条件に合わなかったら戻す、という面倒な手順が必要になります。
UIの名前としての peek
同じ発想は画面上の機能名にも使われます。エディタやアプリで「定義を peek する」「ファイルを peek する」といった言い回しがあるとき、たいていは今の作業画面を切り替えずに、小さなウィンドウや一時的な表示で中身だけ見せるという意味です。本格的に開く(open)のではなく、ちょっと確認するだけ、というニュアンスですね。
覚えておくとよいポイント
peekは「見るだけ、変えない」が基本の意味- 同じ
peekを何回呼んでも、結果が変わらない(状態を進めない)のが普通 - 中身が空っぽのときの振る舞い(エラーになるのか、空の値が返るのか)は、使うライブラリやツールによって違うので確認が必要
名前を見たときに「あ、これは状態を変えない側の操作だな」とピンとくるようになると、知らないライブラリのドキュメントを読むときの理解がかなり速くなります。
このページは役に立ちましたか?