76
61 ななしのよっしん
2016/12/21(水) 18:52:21 ID: +iDLBYxE/q
>「実行時エラー」になるのであって「コンパイルエラーにはならない」のが悲劇の始まりだった、という理解で良いのかな。
String html = httpClient.getHtml(url); // アクセスできない場合はnullが返る
int length = html.length();
みたいな条件によってはnullが入るけど宣言された型の範囲内で違反はない、ってコードではコンパイルエラーに「できない」から問題になってる。
nullが入りうる型を別途定義し単純なメソッド呼び出し等を禁じる(コンパイルエラーを出す)null安全っていう機構を有する言語が増えつつあるけど、残念ながらjavaはそうじゃない。
62 ななしのよっしん
2016/12/21(水) 22:04:36 ID: Yjs8Al8611
>>60
一言で言うとYes。
長く書くと記事や>>61のような内容。
63 Alt
2017/02/27(月) 11:30:45 ID: O2FKU1eBVp
Minecraft(MOD導入)プレイヤーが一番見たくない例外。(これが出た場合プレイヤーには対処の仕様がない)
64 ななしのよっしん
2017/03/18(土) 23:28:12 ID: pXwxgDJrdX
俺が大学のときの担当教官はナルって読んでたわ。
ヌルポバイバイする頃には、Javaに変わる言語が出てきてもおかしくなさそうな…
とは言え、COBOLだってまだ生きてるから、俺が死ぬまで達成されずに、別の言語に大半は取って代わられ、
それこそCOBOLみたいな立ち位置でゾンビの如く生きてるんじゃないかなと思わんでもないw
65 ななしのよっしん
2017/03/21(火) 16:59:27 ID: Xn8oCH8yek
>>55
ナルは英語での発音であり、語源であるドイツ語ではヌルと発音されるからどっちでもいいんじゃないか?
66 ななしのよっしん
2017/04/25(火) 21:12:34 ID: VW84zMDsnh
英語のnull(ナル)はフランス語のnul(ニュル)が語源
ドイツ語のnull(ヌル)はイタリア語のnulla(ヌッラ)が語源
イタリア語のnullaとフランス語のnulはラテン語のnullus(ヌーッルス)が語源
元は同じだが経路が違う
67 ななしのよっしん
2017/07/22(土) 01:33:59 ID: eihmoJro3n
optionalの思想ってswift等色んな言語に導入されつつあるけど
あれはあれでめんどくさいっつかなんか気持ち悪いんだよなあ
妥協の産物だってことがミエミエで
68 ななしのよっしん
2017/08/29(火) 23:35:14 ID: wp8cc7VIW7
ずっと思ってたけどC/C++とかやってる身からすればぬるぽエラー出すのって本当にあり得ないと思うの
JavaならException出てVMが止めてくれるけどネイティブじゃ色んなプログラムを巻き込んで破壊していくという
一度も出した事ないとは言わないがもう数年は見てない
69 ななしのよっしん
2018/10/07(日) 00:45:23 ID: Rbnnu2RPGu
ぬるぽやOptionalに悩まされてる人はObjective-Cを使えば幸せになれるよ
70 ななしのよっしん
2018/12/28(金) 20:34:08 ID: kIy3b2m9QC
CにはNullPointerExceptionの前にそもそもNULLという概念が無い(ただのdefine定義)
いくらソース上NULLと称したところで要は0なんだから0としての動作をするのは仕方ない
そりゃあポインタ=物理アドレスのチープな環境で書き込めばゼロアドレスも壊すし、関数ポインタでジャンプすればリセットもかかろうというもの
71 ななしのよっしん
2020/04/11(土) 18:38:58 ID: +U44MTjV2o
defineだろうがなんだろうがNULLはNULLやんけw
0でimplementしてるということと、NULLという概念がないことは全く違う。ついでにいえばNULLは処理系定義なので0という保証もない。
72 ななしのよっしん
2020/08/19(水) 00:59:46 ID: nIwa/H6hQc
少なくともC++の場合だと「NULLはあくまでも0と言う数値」である事は理解しておくべきではあるけどね。
void MyClass::Func(int *pArg)
void MyClass::Func(int Arg)
と言ったオーバーロードが存在する関数のポインタ変数を渡す方を使っていたとして、もしそのポインタ変数に対して「NULL」をブチ込んだ場合はintの数値を取る方が呼ばれる事になる。
(個人的にはこのようなオーバーロードを定義する事そのものがアウトだと思うが。状況次第か・・・?)
C++11以降なら「NULL」ではなく「nullptr」を使えばこういった事故は回避可能だが。
73 ななしのよっしん
2020/08/19(水) 11:14:08 ID: r9HOve4fEX
>>67
optionalはflatMapとhaskellやScalaのようなflatMap用の構文ないとまぁ扱い辛い
74 ななしのよっしん
2022/06/20(月) 18:03:15 ID: c9+XxGQqbu
75 ななしのよっしん
2022/07/19(火) 20:00:32 ID: IzgrNpkXIC
英語風だと「ナル」かぁ
「ぬる」は語感がいいから日本語として定着して欲しい
vinylだってビニールとして定着したんだし問題ないはず
76 ななしのよっしん
2022/11/25(金) 18:10:04 ID: k9mp0nxhbn
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。