知識の枝

"All is well"

hoge, foo barって何?

約455日前 2021年3月28日14:05
疑問解決
コマンド

改訂履歴


2021/3/28 投稿

「hoge」「foo」「bar」


プログラミングについてインターネット上で調べると、
「hoge」だったり「foo」「bar」といった謎のワードをよく見かけます。

参照しているサイトが異なるのになぜかみんな一様に上記のワードを使用している・・・
調べてみたところ、どうやら意味をもった単語のようです。


1. 読み方


-hoge 「ほげ」
-foo 「ふー」
-bar 「ばー」

組み合わせて「hogehoge(ほげほげ)」だったり「foobar(ふーばー)」と書いてあったりもします。

2. メタ構文変数名


2.1 – 何それ?


謎のワードたちの正体は メタ構文変数名 です。
聞き馴染みの無い言葉ですので分かり易く言うと、
「ほにゃらら」とか「だれだれ」のような、それ自体には意味が無いけど何かそこに名前が必要な場合に使われます。

プログラミングの世界では
ほにゃらら = ほげほげ になるのです。

2.2 – 種類


全く覚える必要はないですが色々な書き方があるようです。
見かけたら全部「ほにゃらら」と訳して下さい。

hoge, fuga, piyo, foo, bar, baz

まだまだ調べると出てきますが、私が見たことあるのはこれくらいです。

2.3 – よく使われる場面


メタ構文変数名という名のとおり、変数(特定の意味を持たせない文字)を表すときに使用されます。

例えばサンプルプログラムがこんな内容だったとします。
test = ‘sample’
print(test)
---出力---
sample

testは変数
sampleは変数に代入する文字列

サンプルコードを書いた主は「test」「sample」の部分に自分の好きな文字を割り当てて欲しいという意味を込めてこのように書いています。

しかしサンプルコードを動かして学ぼうとする私のような初学者は、
上のサンプルを見たときに自分の環境でも変数にtest、文字列にsampleを記載しようとします。

さらには

「testって急に出てきた言葉だけどなんだろう?」

「なんでtestという名前なのだろう?」

と悩んでしまう人もいます。
(実際、意味が分からなくて困ったことがありました)

こんな場合に役に立つのがメタ構文変数です。
メタ構文変数という概念を知っていれば「hoge」や「foo」が出てきても、「あぁここは何を入れてもいいんだな」と理解できます。


3. 大事なこと


2.3項で書いたように、
このメタ構文変数の概念を知らない初心者向けの解説記事で「hoge」「foo」を使うのは良くありません。
筆者の意図が伝わりません。

初心者を対象にする参考書や記事は、始めにこの解説を入れればスムーズに理解してもらえるようになると思います。

知ってて当たり前かもしれませんが、知らないのが初心者ですので。。。


4. 最後に


hoge, foo, barについて理解できていれば嬉しいです。

わざわざ調べなくても、薄々気付くことかもしれません。
それでもわざわざ調べてくれた人が理解できるようにこの記事を書きました。

参考になれば幸いです。