アカウント名:
パスワード:
私もその辺がよく分からないのですが、初期化されたか=保持されている値が有効か否かのフラグをアドレス値とは別に持たせるべきだったとでもいうのでしょうか?
そうではなくて、 (non-nullな)参照型が決してnullになり得ない言語仕様にしておけば良かった、 ということでしょう。
といっても、nullに慣れ親しんでしまった人には、 なかなか想像し難いものがあるかもしれません。 例えば、こう考えてみてはどうでしょう。 Javaにそもそもnull定数が無く(nullが予約語でなく、 たとえnullと書いてもコンパイル時に未定義変数エラーになる)、 すべての変数に初期化が
C++ にも、nullable な (type*) と、not nullable な (type&) がありますよね?
その仕様のおかげで、様々な問題を抱えるに至りました。どの様な問題が起こったのかといいますと、例えば、
(type*)->hoge と (type&).hoge が混在して気持ち悪くなりました。# それはアクセサの問題じゃないか
std::string& hoge() とか意味もわからずに書いてバグらせる奴がでました。# それはスタックの問題じゃないか
int hoge(const int &hage) とか、何をしたいかわからん事かかれました。# 結局はバカなのが問題じゃないか
つまり、何がいいたいのかというと、nullable であるかどうかは、私の問題にはなんら関係がないって事です。# 違った
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人
NULLがない世界 (スコア:0)
# え?NULLがあっても、NULLなんかでは初期化しませんか。そうなんですか。
Re: (スコア:0)
私もその辺がよく分からないのですが、
初期化されたか=保持されている値が有効か否かのフラグを
アドレス値とは別に持たせるべきだったとでもいうのでしょうか?
Re: (スコア:5, 参考になる)
そうではなくて、 (non-nullな)参照型が決してnullになり得ない言語仕様にしておけば良かった、 ということでしょう。
といっても、nullに慣れ親しんでしまった人には、 なかなか想像し難いものがあるかもしれません。 例えば、こう考えてみてはどうでしょう。 Javaにそもそもnull定数が無く(nullが予約語でなく、 たとえnullと書いてもコンパイル時に未定義変数エラーになる)、 すべての変数に初期化が
Re:NULLがない世界 (スコア:1, 興味深い)
C++ にも、nullable な (type*) と、not nullable な (type&) がありますよね?
その仕様のおかげで、様々な問題を抱えるに至りました。
どの様な問題が起こったのかといいますと、
例えば、
(type*)->hoge と (type&).hoge が混在して気持ち悪くなりました。
# それはアクセサの問題じゃないか
std::string& hoge() とか意味もわからずに書いてバグらせる奴がでました。
# それはスタックの問題じゃないか
int hoge(const int &hage) とか、何をしたいかわからん事かかれました。
# 結局はバカなのが問題じゃないか
つまり、何がいいたいのかというと、
nullable であるかどうかは、私の問題にはなんら関係がないって事です。
# 違った