[過去ログ] Go language part 3 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
7
(1): デフォルトの名無しさん [sage] 2019/10/18(金) 14:25:55.97 ID:I27oYfOd(1/2) AAS
>>6
6(2): デフォルトの名無しさん [sage] 2019/10/18(金) 13:53:47.66 ID:wgxHvfCr(1/3) AAS
先週から仕事でGoやることになったんだが、この言語辛すぎないか・・・?
ジェネリクスないしエラーが辛い。ジェネリクスは2.0で入るらしいが。
Goの作法だとエラーハンドリング忘れて次の処理を書けるリスクが常に孕んでてて書いてて全然安心できない。
あと詳細なエラー情報見ようとするとcustomErr,ok:=err.(CustomError)みたいにしないと情報とれないの危なすぎでしょ。
なんでカスタムエラー型認められていないの?
認められていない訳じゃない
しかし、カスタムなエラー型だと正常時にnilが帰ってきた時に
if err!=nil {} がtrue判断を食らうという厄介なバグがある
これは型付きnilというバグだが、仕様と言い張ってる模様
仕様なら、the predeclared identifier nil, which has no typeの記述とか直せや!
10: デフォルトの名無しさん [sage] 2019/10/18(金) 15:49:30.94 ID:wgxHvfCr(2/3) AAS
>>7 認められてないというよりか風潮といった感じか
カスタムエラーがstructじゃなくてinterfaceならいけるんじゃない?
まあどのみち使用しているライブラリがerror返してるからどうしようもないんだけどな
俺はMySQLのエラー番号が知りたいだけなのにどうして危険な操作を強いられるんだ

>>8
8(1): デフォルトの名無しさん [sage] 2019/10/18(金) 14:31:17.21 ID:I27oYfOd(2/2) AAS
>>6
エラー処理を忘れるうっかりさんは例外だってキャッチ忘れるだろな

そして、エラー処理は1.13でほんの気持ちだけ改修入ってるからチェック
Is, As
まず俺はGoのエラーと例外を引き合いに出してはいない(例外は糞だが)
例えば関数の戻り値がT,errorのような場合でerrorじゃないときだけTの戻り値にアクセスできるような仕組みが欲しい
ScalaのEitherやRustのResultのようなやつな
今はジェネリクスないからそういう実装はできないだろうけど
そもそも職場の制約で.1.13は使えないが、IsもAsも対してかわらんなって印象だわ。
ライブラリの実装者が中で返すエラーの型を変えた場合、IsやAsしててもコンパイルエラーにならず適切なエラー処理ができずに実行されてしまう。
戻り値の型できちんとカスタムエラー型を明示してくれてればコンパイルエラーで気づけるんだけどな

今さっき聞いたんだけど、2.0で入る予定のエラーハンドリング周りのサポート、error型のみが対象らしいんだってな。
2.0にはいると本当にカスタムエラーの道が閉ざされてしまいそうだけど本当にそれでええんやろか
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.779s*