[過去ログ] Go language part 3 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(1): デフォルトの名無しさん [sage] 2019/10/17(木) 21:38:04.78 ID:wMsZ+t6y(1) AAS
Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。

公式ドキュメント
外部リンク:golang.org

日本語訳
外部リンク:golang.jp

※前スレ
Go language part 2
2chスレ:tech
2: デフォルトの名無しさん [sage] 2019/10/17(木) 22:00:39.82 ID:su/chz7m(1) AAS
>>1
テンプレが古すぎるんで作ってみたがどうだろ

公式
外部リンク:golang.org

公式ドキュメント
外部リンク:golang.org

公式外パッケージドキュメント
外部リンク:godoc.org

ブラウザ上で試し書き
外部リンク:play.golang.org
3: デフォルトの名無しさん [sage] 2019/10/17(木) 22:34:25.92 ID:wphaTNNp(1) AAS
golang.jpは外して良いね
4: デフォルトの名無しさん [sage] 2019/10/18(金) 00:00:29.03 ID:DhnYyybT(1) AAS
golang.jp は、エイベルの古川昇部長が、社内で始めた翻訳プロジェクトだろ?
最近は、活動してないのか?

改訂2版 基礎からわかる Go言語、古川昇(エイベル)、2015
5: デフォルトの名無しさん [sage] 2019/10/18(金) 00:45:01.73 ID:uhy/qlU/(1/3) AAS
その人もうやめてるでしょ
6
(2): デフォルトの名無しさん [sage] 2019/10/18(金) 13:53:47.66 ID:wgxHvfCr(1/3) AAS
先週から仕事でGoやることになったんだが、この言語辛すぎないか・・・?
ジェネリクスないしエラーが辛い。ジェネリクスは2.0で入るらしいが。
Goの作法だとエラーハンドリング忘れて次の処理を書けるリスクが常に孕んでてて書いてて全然安心できない。
あと詳細なエラー情報見ようとするとcustomErr,ok:=err.(CustomError)みたいにしないと情報とれないの危なすぎでしょ。
なんでカスタムエラー型認められていないの?
7
(1): デフォルトの名無しさん [sage] 2019/10/18(金) 14:25:55.97 ID:I27oYfOd(1/2) AAS
>>6
認められていない訳じゃない
しかし、カスタムなエラー型だと正常時にnilが帰ってきた時に
if err!=nil {} がtrue判断を食らうという厄介なバグがある
これは型付きnilというバグだが、仕様と言い張ってる模様
仕様なら、the predeclared identifier nil, which has no typeの記述とか直せや!
8
(1): デフォルトの名無しさん [sage] 2019/10/18(金) 14:31:17.21 ID:I27oYfOd(2/2) AAS
>>6
エラー処理を忘れるうっかりさんは例外だってキャッチ忘れるだろな

そして、エラー処理は1.13でほんの気持ちだけ改修入ってるからチェック
Is, As
9: デフォルトの名無しさん [] 2019/10/18(金) 14:39:41.03 ID:W6xTwO6R(1) AAS
O2
10: デフォルトの名無しさん [sage] 2019/10/18(金) 15:49:30.94 ID:wgxHvfCr(2/3) AAS
>>7 認められてないというよりか風潮といった感じか
カスタムエラーがstructじゃなくてinterfaceならいけるんじゃない?
まあどのみち使用しているライブラリがerror返してるからどうしようもないんだけどな
俺はMySQLのエラー番号が知りたいだけなのにどうして危険な操作を強いられるんだ

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

今さっき聞いたんだけど、2.0で入る予定のエラーハンドリング周りのサポート、error型のみが対象らしいんだってな。
2.0にはいると本当にカスタムエラーの道が閉ざされてしまいそうだけど本当にそれでええんやろか
11: デフォルトの名無しさん [sage] 2019/10/18(金) 16:01:34.41 ID:uhy/qlU/(2/3) AAS
エラー処理の観点から見るとジェネリクスないのはもう相当きついね
関数型脳は捨てるしかない
12: デフォルトの名無しさん [sage] 2019/10/18(金) 19:57:12.19 ID:wgxHvfCr(3/3) AAS
まあRustも関数型言語かというと違うけどな。標準ライブラリにはモナドないし。
ジェネリクスが必要なものに関しては今使えないから仕方がない面はあるとは思う。

ただカスタムエラー型が実質使えない状態になってるのは辛いなあとは思う
13: デフォルトの名無しさん [sage] 2019/10/18(金) 21:03:52.48 ID:uhy/qlU/(3/3) AAS
モナドあってもdo記法相当ないときついからね
14: デフォルトの名無しさん [] 2019/10/19(土) 15:58:08.27 ID:g7gJ/kc1(1) AAS
exe でかいな・・・
15: デフォルトの名無しさん [sage] 2019/10/19(土) 19:06:00.27 ID:VYVT60v2(1) AAS
う、うん…
16: デフォルトの名無しさん [sage] 2019/10/19(土) 19:56:56.88 ID:N1S9xfvx(1) AAS
2MBは静的リンクされてる実行ファイルなら普通よ
C系のリンカーの出力だとままある
動的リンクされてDLLとかアセンブリとかSOをロードする実行ファイルとは違う
ロードが速いはずというメリットもある
17: デフォルトの名無しさん [sage] 2019/10/19(土) 22:13:55.22 ID:x3sKZMaG(1) AAS
せやな
この特性でインスタンスの起動が早くてクラウドだと重宝するね
反面WASMとかだと辛いという話は聞いている
18: デフォルトの名無しさん [] 2019/10/20(日) 10:01:30.26 ID:Xl2t0ZNf(1) AAS
そもそもC/C++自体がすでに第一選択の言語じゃなくて、応答性やパフォーマンスの問題で消去法で選ばれる言語だし、
Goはそれで弾かれる側の言語なんで無理無理

Goが選択肢に入るような要件ならC++は選択肢に入らないし、逆もまた然り
19: デフォルトの名無しさん [sage] 2019/10/20(日) 10:16:19.34 ID:kaRRw6/p(1/8) AAS
しかし、C++は他に選択肢が無いというよりアセンブラより生産性が高いという消去法で選択される言語
C++よりも生産性が高いと思う人間、例えばGoogleとか俺にとっては消去法での乗り換えが充分に考えられる
20: デフォルトの名無しさん [sage] 2019/10/20(日) 10:22:02.89 ID:kaRRw6/p(2/8) AAS
あ、もうちょい書き足りなかった
つまり、ベターなアセンブラの地位をC/C++から奪おうという狙いの言語、という位置付けだと考えるよ
21: デフォルトの名無しさん [] 2019/10/20(日) 10:26:38.82 ID:7X6GOXnL(1/2) AAS

22: デフォルトの名無しさん [sage] 2019/10/20(日) 10:33:11.87 ID:kaRRw6/p(3/8) AAS
笑っていればいいさ、20年前にJavaが将来のメジャー言語になると言ったら馬鹿にされるのは必至だったし
23: デフォルトの名無しさん [sage] 2019/10/20(日) 10:35:44.03 ID:kaRRw6/p(4/8) AAS
まあ、linuxカーネルがCで書かれる限り、Cの牙城を崩すのは夢物語なのは間違いない
24
(1): デフォルトの名無しさん [sage] 2019/10/20(日) 10:53:15.21 ID:FYx27IXW(1/2) AAS
1999年ならjavaはすでにメジャー言語でしたけどね
25: デフォルトの名無しさん [] 2019/10/20(日) 11:07:37.88 ID:ZaJFVv7X(1) AAS
Dと比べてどうなん?
1-
あと 977 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.037s