はじめに
農業IoT開発やそのほかIoTの勉強の際に気になったことを備忘録としてまとめています。
普段は下のような感じで書いています。
名前空間とは
名前空間とは「名前の衝突を防ぐための“名前のグループ分け”」ができる機能です。
まずは、高校生のクラスと氏名で考えるとわかりやすいです。例えば、3年B組の山田太郎くんと3年C組の山田太郎くんがいたとします。この時、”山田太郎”だけだと、どちらの山田太郎くんかわかりません。そこで、”3年B組の”と指定すればただ一人に特定できます。ただし、3年B組に山田太郎くんが2人以上いないことが前提です。
次に、これをプログラムに当てはめて考えてみます。コードは適当です。
namespace MyDevice {
void begin() {
Serial.println("initialized!");
}
}
namespace YourDevice {
void begin() {
Serial.println("initialized!");
}
}
void setup() {
Serial.begin(115200);
MyDevice::begin(); // ← MyDevice内のbegin()を使う
YourDevice::begin(); // ← YourDevice内のbegin()を使う
}
void loop() {
//何もしない
}上のコードのように書けば、MyDeviceとYourDeviceで同じbegin()が重複していても問題なく動作するということです。
名前空間のメリットとデメリットを表にまとめました。他にも色々あるかもしれませんが、簡単にまとめています。
| メリット | デメリット |
|---|---|
| 同じ名前の関数や変数を安心して使える | 書くときに少し長くなる |
| 用途ごとに分けてコードを分かりやすくできる | 小規模プログラムだとかえって面倒になる |
| どのグループの関数かがすぐ分かる | 他の人には少し分かりにくくなることがある |
| 自作ライブラリを作るときに安全 | Arduino IDEでは補完(自動候補)が出にくい |
| まとめて再利用しやすい | 名前空間を増やしすぎるとややこしくなる |
最後に
今回は名前空間について勉強してみました。
正直わかったようでわからない感じですが、上手く使えば強力な武器になりそうです。
以上!
おすすめの書籍
もっと詳しくM5Stackについて知りたい!という方はこちらの書籍がおすすめです。とても詳しく載っていてわかりやすいです。
とりあえず何か作ってみたい!という方にはこちらの書籍がおすすめです。書いてある通りにやるだけでお手軽にIoTデバイスを作ることができます。
Arduinoで電子工作したい方にはこちらもおすすめです!Arduinoでどんなことができるのか、一目でわかる一冊になっています。
※Amazonのアソシエイトとして、当メディア(Nラボ備忘録)は適格販売により収入を得ています。
他記事のご紹介
当ブログではさまざまな記事を投稿しています。最近はPythonで物理シミュレーションをやってみたり、JavaScriptの記事も人気が出てきています。ぜひご覧ください。





コメント