😉
Boolean の初期値は「true と falseのどっちがいいの?」
こんにちは、kageko です。
今回は、コードを書いていて、ふと思ったことを記事にしました。
初めての技術記事です。そんなに期待しないでください!
Boolean の初期値は「true と falseのどっちがいいの?」
以前は、動作が保証されていればどちらでもいいのかなーと思っていました。
コンピュータサイエンスを学ぶまでは、コードに整合性が取れていれば「どちらでもいいのではないか」と思っていました。
コンピュータサイエンスを学んだ結果、考えが変わりました
最終的には、品質が担保できていれば「どちらでもいい」という回答になりますが、以下のような理由から
可能な限り「false(偽)を初期値にできるよう」にしています。
コンピュータ(回路)の中では、0はFalse(偽)として、電流が流れていないということを示し、
1ではTrue(真)として、電流が流れていることを示します。これらの0と1を2進数と呼びます。
引用:Recursion「データ:2進数とデータ解釈」より (https://recursionist.io/)
サンプル
例えば、ボタンをクリックすると、コンテンツが開閉するtoggleを作ってみました。
今回は、JavaScript で、書いています。
HTML
// コンテンツは最初は閉じている設定です。
<div class="toggle">
<button class="toggle__button" @click="toggleFlag(true)">toggle button</button>
<div class="toggle__contents" v-show="this.toggleContents = true">
..contents..
</div>
</div>
CSS
.toggle__contents {
display: none;
}
JavaScript
// Boolean型指定
let toggleContents = Boolean(false);
// .toggle__contents を取得
const contents = document.getElementsByClassName('toggle__contents')[0];
function toggleFlag(flag) {
if (flag === true) {
contents.style.display = 'block';
}
}
このような設計にしたことで「コンテンツが開いている(存在する)ことが真」と言うことがわかり、「コンテンツに対して変化(=開く)があったとき、どう言う処理をするか」がわかりやすくなりました。
ここまでご覧いただき、ありがとうございました!
まだ完全に学びきれていないので、自論です。
学ぶこともコード書くことも、とても楽しいことなので、是非続けていきたいと思っています。
P.S.
コンピュータサイエンスは、Recursion(recursionist.io)で学んでいます。
今通っている大学(通信制)を卒業したら、コンピュータサイエンスの大学か大学院に行く予定です。
Discussion