こんにちは､ そしてようこそ｡ このビデオでは､ enum型を使用する演習の解答を示したいと思います｡
というわけで､ 先に進みます｡ この解答は覚えていますね｡
基本的には､ companyというenumを作成し､
その値を定義して出力します｡ そこで､ コードブロックを走らせる｡
新しいプロジェクトを作ります｡ このプロジェクトにはenum exampleという名前がついていますが､
これはそれにふさわしいものだからです｡ 新しい､ 新しいプロジェクトと言うことでファイルするために上がるのです｡
コンソールアプリケーションcを選択するのは､ もうかなり上手になっているはずです｡
そして､ このenumにexampleという名前をつけて､ すべてをいつもの場所に配置することにします｡
次を打って終了です｡
そして､ これが私たちのメインを作ることになるのです｡ cファイルで､ これは良いことです｡ スタートさせるので､
データを一部削除してください｡
ここでも､ 上部に著者と出典のコメントを入れることができます｡
良い練習になるようにやっていくべきです｡
デモのため､ また単なる効率化のために､ そこは空白にしておきます｡
しかし､ ソースコード全体にコメントをつけるべきでしょう｡
そこで､ 今回のチャレンジの要件は､ 基本的にcompanyという名前のenumを作ることでした｡
そして､
彼女はGoogle､ Facebook､ Xerox､ Yahoo eBay､ Microsoftの有効な値のみを持つことができ､
3つの変数を作成し､ それらにいくつかの値を割り当て､ それらの値を出力します｡
ですから､ enum型を作りたい場合は､ enumキーワードを使わなければなりません｡
だから､ enumと言うのです｡
そして､ enumの名前を指定したいと思います｡ 今回は､ 会社名とします｡
このenum型の有効な値を指定するには､ キーボードのセミコロンのすぐ上にある四角い括弧を使って､
名前を入力すればよいのです｡
ここで､ Googleと言いますが､ 見やすいので全部大文字で書いておきますね｡
Facebookは第2弾になる予定です｡
ゼロックス､ 私たちの3番目｡
ヤフー､ 4社目｡
eBay､ そしてマイクロソフト｡
そして､ それだけです｡ このようにして､ company という名前の新しい enum 型を作成することができます｡
そして､ このenumに適用できる値はこれだけである｡
そのため､ このタイプの変数を作成しても､ 他の値を含むことはできません｡
そして､ 列挙型の最初の部分は､ 列挙型を定義し､ それが何であるかを定義し､ 次にそれを使用することです｡
6行目では､ 定義しています｡ 私たちは､ 会社がGoogle､ Facebook､
Xerox､ Yahoo､ eBay､ Microsoftの価値観しか持てないと言っているのです｡
次の課題は､ いくつかの変数を作成することでした｡
ゼロックス､ グーグル､ イーベイという値が入っていた3つの変数｡
company型のenum変数を作るには､ enumと言えばいいのです｡
会社である型の名前､ そして変数の名前です｡
ここでは､ ゼロックスと名付けましょうと言えばいいのです｡
そして､ その宣言を同じ行で初期化します｡
つまり､ 等号演算子を使って､ Xeroxと等しいとします｡
だから､ 会社という名前には､ 何の価値も与えられないことを覚えておいてください｡
これをそのままビルドすると､ 実際にその変数に代入できているので､
うまくコンパイルできます｡
しかし､
もし私が自分の名前のような他のものに署名しようとしたら､
それは有効ではないので､ コンパイラーエラーが出るでしょう｡
私のビルドメッセージでは､ enum company型を文字で初期化すると､
互換性のない型と表示されます｡
だから､ エラーが出て､ それを実行することができないんだ｡
そのため､ コンパイラは実際にenumに割り当てることができるものから保護します｡
だから､ 今回もゼロックスと言うことにしています｡
二重引用符で囲む必要はないんです｡
実測値なので､ 何もしなくていいんです｡
あと2､ 3個は作りたいですね｡ ひとつはGoogle､ もうひとつはeBay｡
だからここでは､ 会社のGoogleと言うことにしています｡
その全角のGOOGLEを割り当てる｡
そして､ 3つ目に作るのはebayというものです｡
すべて小文字が変数名です｡
その変数の値は､ enum値eBayになる予定です｡
そして､ これまで提供してきたすべての実例で､ このコードを書くときに何をすべきかを考えています｡
小さな塊で書いた方がいい｡
数行のコンパイルテストを書く｡
たくさんのコードを書いて実行しないこと｡ また､ ここで紹介するデモの中には､
効率化のために最後にまとめているものもあります｡
しかし､ 新しい開発者､ 新しいプログラマーとして､
数行のコードとテストの後にコンパイルする必要があります｡
だから､ 6行目でenum型を作成した後､ それをコンパイルしてテストする必要があるんだ｡
テストできることは少ないが､ コンパイルくらいはできるだろう｡
8行目､ 9行目､ 10行目は､ コンパイルして実行した方が良いので､ そのようにしました｡
さて､ enumを作成したら､ 次は実際にその値を出力してみましょう｡
printf関数を使って値を出力する方法は知っています｡
printfの二重引用符の中にあるものは､ 出力として表示されます｡
だから､ Xeroxの値が､ コロンを入れて､ フォーマット指定子を使う必要があるんだ｡
enumは､ ボンネットの中では実際の整数であることを忘れないでください｡
だから､ ここでパーセントDができる｡
そして､ マッピングのためにカンマをするのです｡
つまり､ カンマの後に変数名を入れることになる｡
ここでは､ Xeroxという変数名を実際に提供する必要があります｡
そして､ 他のものにも同じようにしたいのです｡
さて､ 12行目で忘れてしまったことですが､ フォーマットを読みやすくするために､ 新しい行を追加したいと思います｡
だから､ バックスラッシュnと言うんです｡
これはエスケープシーケンスで､ printfで解釈される特殊文字です｡
そこで､ printfも行い､ Googleの値はと言うことにしています｡
パーセントdバックスラッシュnと言い､ ここではgoogle変数の値を出力していますが､
これはすべて小文字のgoogleです｡
そして最後に､ eBayの価値をプリントアウトします｡
そして､ これも改行で整数のパーセントdになる｡
この先､ 何もないから必要ないとはいえ｡ これは良い習慣で､ 引数にカンマを使い､
eBay変数と言うのです｡
そして､ それらの文はすべてセミコロンで終わらせています｡ そして､ それだけです｡
それでは､ コンパイルして実行しましょう｡
そして､ ここで期待される出力は､ リスト内のこれらの値の順序で表される整数になる予定です｡
というわけで､ 6行目でリストが定義されていることにお気づきでしょうか｡
リストには､ Google､ Facebook､ Xerox､ Yahoo､ eBay､ Microsoftが含まれています｡
in cコンパイラでは､ これらは整数で表現される｡
だから､ Googleは0なんです｡ Facebookは1． ゼロックスは2．
つまり､ 出力として表示されるのは､ 彼の出力2
0､ そしてeBayの4です｡
では､ それが一致するかどうかを見てみましょう｡ さあ､ 組み立てよう｡
警告もエラーも出ていない｡ さっそく実行してみましょう｡
そして､ 私が見たのは､ ゼロックスの価値が2であるということです｡
Googleの値は0です｡ そして､ eBayの値は4なので､ 正しく見えます､ かなりきれいです｡
さて､ いくつかの講義で､ 実際に整数の値を変更することができることを思い出してください｡
enumを定義すると､ 割り当てが送信されます｡
だから､ もし私が実際に順番を変えたいと思ったら､
ヤフーを10とし､ イーベイを11､ マイクロソフトを12とすることができる｡
では､ それを保存してきましょう｡ これで出力はゼロックスとなり､
やはり2となるはずです｡
グーグルは0になるけど､ イーベイが11になる｡
そこで､ もう一度実行すると､ 2 0 11と表示されるはずです｡
ですから､ 何らかの理由でその整数値を変えたい場合は､ その整数値を変更することができます｡
そうでない場合は､ リストで定義された順番になります｡
そしてまた､ これで遊ぶことができるのです｡
ゼロックスがグーグルと同等かどうかなど､ 実際に他の変数を作ることも可能です｡
列挙型はとてもクールで､ おそらくかなりの頻度で使用することになると思います｡
変数に有効なものを制限することができ､ ある種の検証を行うことができるので､
これはいいことです｡
本当に使いやすいし､
見やすい｡ コードがより読みやすくなります｡
これでXeroxという変数ができ､ 実際の値はXeroxとなります｡
だから､ 実際には他の条件文なども用意できるし､ コードも読みやすくなる｡
というわけで､ 今回は列挙型を理解するための簡単な練習でした｡
基本的には､ enum型の定義方法と､ そのenum型の使用方法です｡
また､ printfについても再度取り上げました｡ プリントフォーマットスペシファイアを取材しました｡
エスケープシーケンスとかなり良い例をカバーしました｡
このサンプルをZIPファイルとして提供しますので､ ダウンロードしてください｡ ありがとうございます｡