‫お帰りなさい｡
‫このビデオでは､ 貴族について見ていきます｡
‫そして､ ノーブルというのは､ 他のプログラミング言語でも見られる概念です｡
‫例えば､ Swiftではかなり広範囲に使われていて､ そこではオプションと呼ばれています｡
‫つまり､ 値を持つこともあれば､ 値を持たないこともある変数なのです｡
‫つまり､ 選択肢は2つあるわけですね｡
‫つまり､ 何かが値を持っているか､ 値を持っていないか､ 通常はそれがnullかどうかということです｡
‫では､ いくつか作ってみましょう｡
‫ちなみに､ データ型なので､ データ型は空でもいいし､ そうでなくてもいいんです｡
‫そして通常は､ ここにあるようなNullarborや､ 例えばint 32型のNullarborのようなものです｡
‫だから､ だいたいそういう書き方､ 書き方をするんですね｡
‫32のNullarborになりますね｡
‫そのため､ 評価値はおよそ-20億からプラス20億までの値を持つことができます｡
‫では､ さっそく作ってみましょう｡
‫つまり､ 小説を作るには､ データ型の後にクエスチョンマークを付ければいいのです｡
‫つまり､ 今書いたように整数のNullarborを持ちたい場合は､ エンドクエスチョンマークを使って､
‫その番号を1として､ それをNULLと呼ぶことにします｡
‫もう一つ､ NOM twoと呼ぶものを作り､ これをNULLに設定しましょう｡
‫ご覧の通り､ エラーが発生しました｡ これは､ NULLをintに変換できない､ つまり､ NULLは未知の値型であるため､
‫変換できないと訴えています｡
‫だから､ 整数にnullを代入することはできない｡
‫ここではCとありますが､ 9行目で行っているグローバル整数にNULLを代入することができます｡
‫では､ もう一つ作ってみましょう｡ 番号2で､ 1337 1337とします｡
‫それが､ エルボーを作るときの進め方です｡
‫見ると､ NULLか､ 値があるかのどちらかです｡
‫ダブルスも同様です｡
‫だからダブルクエスチョンマーク｡
‫3番は新しいダブルとクエスチョンマークみたいなものです｡
‫つまり､ 多重のダブルを割り当てることもできるわけです｡
‫つまり､ ここは空っぽになるし､ ここの数字4は3です｡ 14157.
‫それがPIなんですね｡
‫また､ ブーリアンも同様です｡
‫だから､ 複数のboolで､ Boo Volは新しいboolのクエスチョンマークみたいなものだと言うつもりです｡
‫では､ 次にそれを確認してみましょう｡
‫それを画面に表示して見てみましょう｡
‫では､ グローバルナンバーを確認し､ 0.1を使ってみましょう｡
‫2と3です｡
‫そして､ それがナンバーワンになる｡
‫痺れに痺れ｡
‫3と4です｡
‫そして今はもちろん､ ここで紐を終わらせなければならないので､ 文句を言っているのです｡
‫わかりました｡
‫そして､ boolも表示させましょう｡
‫だから､ cは､ 複数のブール値であり､ ブールvol.です｡
‫今すぐオッケイ｡
‫では､ そのコントロールf5を試してみましょう｡
‫そして､ 私たちの知ることのできる数字は､ ご覧の通り､ 何もありません｡
‫だから､ 空っぽでもないんです｡
‫ただ､ 何でもないんです｡
‫1､ 3､ 3､ 7､ 何もせず31415､ 7｡
‫そして､ nullのブール値は何もありません｡
‫だから､ ご覧のように何もないこともあるし､ 不満もないのです｡
‫だから､ そこに価値がなくても､ 大丈夫なんです｡
‫プログラムをクラッシュさせたりはしていません｡
‫もし､ 同じことを知ることができない整数でやろうとするならば､ 5番という整数を作って､
‫そのようにやってみましょう｡
‫つまり､ 初期化してないので空っぽでもあるわけですよね？
‫だから､ あれにそうやってアクセスしようとしても､ そこには何の価値もないんです｡
‫そして､ ここでは5番を使うことにします｡
‫それを確認しよう｡
‫5をコントロールする｡
‫そしてご覧の通り､ ビルドエラーが発生し､ 未割り当てのローカル変数5番の使用と表示されるため､ これを停止することもできません｡
‫その辺がポイントなんですね｡
‫空でもいいし､ 空にはできない変数を作っても､ プログラム上はまったく問題ない｡
‫クラッシュしない
‫そして､ なぜそれを使うのか？
‫ノーブルズでは､ どのようなことを考えているのでしょうか｡
‫例えば､ 大量のデータを扱うプログラムがあり､ そのプログラムにはユーザーデータがあり､ それをデータベースから取得するとします｡
‫また､ いくつかの値や列については､ 単に項目がないだけです｡
‫では､ ユーザーネームがあるとします｡
‫個人名や名字があり､ 誕生日などがあります｡
‫これらの情報はすべて私たちのデータベース内に保存することができますが､ ほとんどのユーザーについてはユーザー名しか持っていません｡
‫名前も苗字もわからない｡
‫パスワードもメールアドレスも､ 何もわからないんです｡
‫ユーザー名しかないのですが､ それでもプログラムが正しく動作するようにしたいのです｡
‫だから､ 私たちはノブレスで構わないと思っています｡
‫値がない場合｡
‫私たちのプログラムをクラッシュさせることはありません｡
‫では､ そのごくごく一般的な例にしてみましょう｡
‫ここでは複数のブールを使って､ Ismaelと名付け､ NULLに設定することにします｡
‫そして､ この中で私は､ メールがNULLなのか､ それとも実際に真実なのかをチェックします｡
‫だから､ もしそれがtrueなら､ user is mailのように書いてみよう｡ もしmailがfalseなら､ user
‫is femaleのように書こう｡
‫そして最終的には､ 性別が決まっていないとか､ 性別が見つからなかったとか､ そういうことを言うだけで､
‫私たちはそうなのです｡
‫だから､ 今はそういうアプローチで進めてもいいんです｡
‫そうですね｡
‫そして､ ここでは次の行に入れることにします｡
‫そして､ そこまで走れば､ 当然ながら性別は選ばれない｡
‫そして､ 私の場合､ そう言われた後､ プログラムは直ぐにシャットダウンしてしまうのです｡
‫そして､ 今でも持っています｡
‫どこかでエラーになり
‫さて､ どうすればいいんだろう？
‫まあ､ ここにあるのはこれなんですけどね｡
‫だから､ 私のテキストにはまだこのforがあり､ それにアクセスしようとしているのです｡
‫でも､ 何かが足りないから､ うまくいかないんです｡
‫よし､ これでもう一度やってみよう｡
‫コントロールF 5と私たちは､ 私たちの知っている数字です｡
‫それはそれで全然いいんです｡
‫そして､ ここでは､ 性別は選ばない｡
‫わかりました｡
‫それはそれでいいんですけどね｡
‫しかし､ 騙されやすい人を騙されないタイプに変えたい場合はどうすればいいのでしょうか？
‫では､ さっそく試してみましょう｡
‫ここで騙されやすい二重を作ろう｡
‫5番で13番にしよう｡ 1の後に2倍､ あるいは実際には6番と呼びましょう｡ ここには5番がありますが､
‫これは一度も使っていませんから｡
‫誰も傷つけない｡
‫だから､ 7番はヌルになる｡
‫では､ それらをどのように非知識型に変換するかというと､ 非知識型ダブルとなるNUM8を作成するのです｡
‫一般的な二重なんですね｡
‫ヌルであってはいけないし､ ヌルを代入することもできない｡
‫そして､ num 6がnullに等しいかどうかをチェックし､ num 8が0になるようにするだけです｡ 0.
‫それ以外の場合は､ num eightをnum six sixとすればいいのです｡
‫しかし､ ここで問題が発生します｡ というのも､ 入力した内容をそのまま代入すると､ cannotly convert type double
‫question mark to doubleと表示され､ 明示的な変換は存在するのです｡
‫では､ キャストが足りないのでしょうか？
‫そして､ それが私たちに必要なことなのです｡
‫つまり､ num sixは内部的にはdoubleなので､ doubleの値が入っていることになります｡
‫そこで､ この値をNUM 8に代入して､ NUM 8の値をNUM
‫8として表示させることにします｡
‫では､ まずコントロールF5から｡
‫そして､ 見ての通り､ NUM 8の値は13である｡ 1.
‫つまり､ キャスティング､ 明示的な変換がうまくいったわけです｡
‫しかし､ もっと手っ取り早い方法があります｡
‫というわけで､ ご覧の通り､ かなりの努力が必要でした｡
‫私たちにはこれが必要だったのです｡
‫LSの場合は､ NULL合体演算子があるので､ それを利用することができます｡
‫だから､ 8番は6番と同じと言えばいいのです｡
‫クエスチョンマーク
‫クエスチョンマーク 8． 53を例に挙げる｡
‫つまり､ 6番が空であれば､ 8を足すか入力します｡ 53し､ そうでない場合は､ 他の方法をとる｡
‫この行は2回必要なのでコピーして､
‫あまりたくさんタイプしたくないので､ もう一度やってみましょう｡
‫その違いを見てみましょう｡
‫そして､ ご覧の通り､ NUM 8の値は13です｡ 1 num eightの値は13です｡ 1､ NUM8 の値は 8
‫です｡ 53.
‫では､ ここで何が起こったのか？
‫ここ50行目で無視されたのは､ まあまあと書いてあったので､ 8を割り当てたのです｡ 53にする｡
‫でも､ 今思えば､ 私は6歳なんです｡
‫価値を持っていたのに､ 取られてしまった｡
‫だから､ 6が値を持っていたように､ 13を取っただけです｡ 1となり､ 7番は値を持たなかったので､
‫8番は8となります｡ 53 を見ると､ num 7 は null なので､ 別の値を代入しています｡
‫ということなんですが......｡
‫コピーしてお使いください｡
‫ヌルの折りたたみ演算子｡
‫ダブルクエスチョンマーク｡
‫つまり､ 通常型から非可動型に変換したい場合は､ ヌル合体演算子を使えばいいわけです｡