パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

プログラミング言語「Dart」に「null安全」版が登場」記事へのコメント

  • by Anonymous Coward

    ヽ( ・∀・)ノ┌┛ガッΣ(ノ`Д´)ノぬるぽ

    だったのが

    ヽ( ・∀・)ノ┌┛ガッΣ(´∇`) ぬるホッ

    という

    安全になったからって糞コードおkって訳じゃねぇ

    となるわけですね

    # 糞コードは世に尽きまじ

    • by Anonymous Coward

      初期化漏れとかメモリリークとか。
      オブジェクトを使用しなくなったときにnullを代入して参照外すのはどう変わるんだろう。

      • by Anonymous Coward

        初期化漏れはコンパイルが通らないので起こりえません。

        • by Anonymous Coward

          クソコードの話をしているのだから、この場合の初期化漏れは初期化されないのではなく初期値の変更忘れ。
          基底クラスのプロパティを変え忘れたとか。

          • by Anonymous Coward

            こういうコメント見ると、NULL安全はまったく理解されてないのだなぁと思うな。

            NULL安全なコードで、後で変更することを想定してる初期値なんてものは実装としても概念としても存在しない。
            NULL安全なフィールドや変数は、つねに意味のある値になっていなければならないし、実際そうなるように書く。
            常に意味がある値を持てないフィールドに、NULL安全な型をつかってはいけない。

            • by Anonymous Coward

              上で、nullObjectパターンとかの話も出てるのも、そのへんが理解されてないからだろうな。
              常に意味のある値であることを保証するための枠組みだと理解してたら、nullObjectパターンを持ってくるなんていう頓珍漢な発想が出てくる余地もないからな。

              • by Anonymous Coward

                オブジェクトの生成時にどうしても初期値を設定できない場合はあるが、そういうときはプロパティやgetterを使うなり遅延初期化なりするしな
                面倒だと思うかもしれないが、本質的に制約が大きくて面倒なんだよ

                (#3836212)は関数型言語の経験はないんだろうか
                あれこそNULL安全の代表選手なのだが

                あとnull objectはちゃんと意味がある値だぞ馬鹿

              • by Anonymous Coward on 2020年06月19日 15時38分 (#3836519)

                > オブジェクトの生成時にどうしても初期値を設定できない場合はあるが、そういうときはプロパティやgetterを使うなり遅延初期化なりするしな

                そのために、NULL許容型があるのですから、それをつかいましょうね。
                NULLでなくなったことを確認した処理からは、その値を保持したNULL非許容の型に値を保持してそれを使いましょう。
                NULL非許容型に、nullObjectの考えをもってくると、NULL(でないとしても)非許容ではなく、NULL許容と同じく、最後までつかえる値なのかわからない型となり、NULL非許容にする意味がなくなります。

                > (#3836212)は関数型言語の経験はないんだろうか
                > あれこそNULL安全の代表選手なのだが

                それはNULL許容型がないための代替策ですよ。
                C# の構造体に対する nullable型ともそうですが、NULLとそうでない値のどちらでも持てる型と、そうでない値だけを保持する型の両方を作ります。
                いわゆるNULL安全な言語では言語側で、NULL許容型と、非許容型の両方を用意してくれているので、NULL非許容型を、NULL許容型の亜種にし、非許容型が事実上存在しなくなるようにすることの利点はありませんね。

                少しだけでいいので、何のためにやっているのか、そうするとどんな影響があるのかというところまで考えてみると、わかるものが増えてくると思いますよ。

                親コメント
              • by Anonymous Coward

                おお、ここまで堂々とした無知は気持ちがいいな
                kotlinのlateinitとか、代数データ型とか、キーワードは教えてやるから自分で調べな
                無知と馬鹿は違うから、自分で調べれば望みがあるぞ

人生unstable -- あるハッカー

処理中...