アカウント名:
パスワード:
ヽ( ・∀・)ノ┌┛ガッΣ(ノ`Д´)ノぬるぽ
だったのが
ヽ( ・∀・)ノ┌┛ガッΣ(´∇`) ぬるホッ
という
安全になったからって糞コードおkって訳じゃねぇ
となるわけですね
# 糞コードは世に尽きまじ
初期化漏れとかメモリリークとか。オブジェクトを使用しなくなったときにnullを代入して参照外すのはどう変わるんだろう。
初期化漏れはコンパイルが通らないので起こりえません。
クソコードの話をしているのだから、この場合の初期化漏れは初期化されないのではなく初期値の変更忘れ。基底クラスのプロパティを変え忘れたとか。
こういうコメント見ると、NULL安全はまったく理解されてないのだなぁと思うな。
NULL安全なコードで、後で変更することを想定してる初期値なんてものは実装としても概念としても存在しない。NULL安全なフィールドや変数は、つねに意味のある値になっていなければならないし、実際そうなるように書く。常に意味がある値を持てないフィールドに、NULL安全な型をつかってはいけない。
上で、nullObjectパターンとかの話も出てるのも、そのへんが理解されてないからだろうな。常に意味のある値であることを保証するための枠組みだと理解してたら、nullObjectパターンを持ってくるなんていう頓珍漢な発想が出てくる余地もないからな。
オブジェクトの生成時にどうしても初期値を設定できない場合はあるが、そういうときはプロパティやgetterを使うなり遅延初期化なりするしな面倒だと思うかもしれないが、本質的に制約が大きくて面倒なんだよ
(#3836212)は関数型言語の経験はないんだろうかあれこそNULL安全の代表選手なのだが
あとnull objectはちゃんと意味がある値だぞ馬鹿
> オブジェクトの生成時にどうしても初期値を設定できない場合はあるが、そういうときはプロパティやgetterを使うなり遅延初期化なりするしな
そのために、NULL許容型があるのですから、それをつかいましょうね。NULLでなくなったことを確認した処理からは、その値を保持したNULL非許容の型に値を保持してそれを使いましょう。NULL非許容型に、nullObjectの考えをもってくると、NULL(でないとしても)非許容ではなく、NULL許容と同じく、最後までつかえる値なのかわからない型となり、NULL非許容にする意味がなくなります。
> (#3836212)は関数型言語の経験はないんだ
おお、ここまで堂々とした無知は気持ちがいいなkotlinのlateinitとか、代数データ型とか、キーワードは教えてやるから自分で調べな無知と馬鹿は違うから、自分で調べれば望みがあるぞ
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stableって古いって意味だっけ? -- Debian初級
つまり (スコア:1)
ヽ( ・∀・)ノ┌┛ガッΣ(ノ`Д´)ノぬるぽ
だったのが
ヽ( ・∀・)ノ┌┛ガッΣ(´∇`) ぬるホッ
という
安全になったからって糞コードおkって訳じゃねぇ
となるわけですね
# 糞コードは世に尽きまじ
Re: (スコア:0)
初期化漏れとかメモリリークとか。
オブジェクトを使用しなくなったときにnullを代入して参照外すのはどう変わるんだろう。
Re: (スコア:0)
初期化漏れはコンパイルが通らないので起こりえません。
Re: (スコア:0)
クソコードの話をしているのだから、この場合の初期化漏れは初期化されないのではなく初期値の変更忘れ。
基底クラスのプロパティを変え忘れたとか。
Re: (スコア:0)
こういうコメント見ると、NULL安全はまったく理解されてないのだなぁと思うな。
NULL安全なコードで、後で変更することを想定してる初期値なんてものは実装としても概念としても存在しない。
NULL安全なフィールドや変数は、つねに意味のある値になっていなければならないし、実際そうなるように書く。
常に意味がある値を持てないフィールドに、NULL安全な型をつかってはいけない。
Re: (スコア:0)
上で、nullObjectパターンとかの話も出てるのも、そのへんが理解されてないからだろうな。
常に意味のある値であることを保証するための枠組みだと理解してたら、nullObjectパターンを持ってくるなんていう頓珍漢な発想が出てくる余地もないからな。
Re: (スコア:0)
オブジェクトの生成時にどうしても初期値を設定できない場合はあるが、そういうときはプロパティやgetterを使うなり遅延初期化なりするしな
面倒だと思うかもしれないが、本質的に制約が大きくて面倒なんだよ
(#3836212)は関数型言語の経験はないんだろうか
あれこそNULL安全の代表選手なのだが
あとnull objectはちゃんと意味がある値だぞ馬鹿
Re: (スコア:0)
> オブジェクトの生成時にどうしても初期値を設定できない場合はあるが、そういうときはプロパティやgetterを使うなり遅延初期化なりするしな
そのために、NULL許容型があるのですから、それをつかいましょうね。
NULLでなくなったことを確認した処理からは、その値を保持したNULL非許容の型に値を保持してそれを使いましょう。
NULL非許容型に、nullObjectの考えをもってくると、NULL(でないとしても)非許容ではなく、NULL許容と同じく、最後までつかえる値なのかわからない型となり、NULL非許容にする意味がなくなります。
> (#3836212)は関数型言語の経験はないんだ
Re:つまり (スコア:0)
おお、ここまで堂々とした無知は気持ちがいいな
kotlinのlateinitとか、代数データ型とか、キーワードは教えてやるから自分で調べな
無知と馬鹿は違うから、自分で調べれば望みがあるぞ