Go language part 3

■ このスレッドは過去ログ倉庫に格納されています
2019/10/17(木) 21:38:04.78ID:wMsZ+t6y
Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。

公式ドキュメント
http://golang.org/doc/

日本語訳
http://golang.jp

※前スレ
Go language part 2
https://mevius.5ch.net/test/read.cgi/tech/1510395926/
2020/01/18(土) 11:28:22.96ID:s9OHHI5s
学習時に2は一貫性なくて嫌だった
2020/01/18(土) 11:30:13.71ID:8BJKylNj
3. {フィールド:値, ...} 形式の構造体生成式
・・・これは構文だしシンタックスシュガーなのか微妙

シンタックスシュガー多めという意見は、どういう観点で構文をシンタックスシュガーだと判断しているのか俺にはサッパリわからない
むしろラムダ式(本来の無名関数という意味ではなく -> で書く記法)というシンタックスシュガーすらないgolangはむしろシンタックスシュガー少なすぎ(でもそこがシビれ
2020/01/18(土) 13:18:44.40ID:AhPxC9uw
シンタックスシュガーといえば、&Hoge{ ... }で構造体を初期化しつつポインタを取れるのに、&1はダメなのがウザい
2020/01/18(土) 13:46:22.20ID:4nVoSga0
シンタックスシュガーというか、なんか一貫性に欠ける略記法みたいなのが多いような
2020/01/18(土) 14:10:48.57ID:8BJKylNj
多いような、と言われてもなぁ
略記法と言っても、_ とか [::2] とかしかぐらいしか思い浮かばないんで、具体的に
2020/01/18(土) 15:16:24.10ID:6ictA0Lc
switch w := v.(type) はかなりエイリアン感あるな
Goに存在する数少ない型推論と言えるものの一つ
2020/01/19(日) 06:24:36.25ID:lyRWqXEG
Dockerの本社いい所にあるね

現役シリコンバレーエンジニアが教えるGo入門 + 応用でビットコインのシストレFintechアプリの開発
https://www.youtube.com/watch?v=WkEWDXogjR8

https://duckduckgo.com/bang_lite.html
!yt giants homerun boat
2020/01/19(日) 10:59:57.18ID:FsFcJUwr
一貫性に欠ける記述に思い至った
スライスとマップだけ生成すると実体ではなくてポインタを返す
やっぱり、構造体も生成するとポインタを返してほしかった
要らんよな実体
2020/01/19(日) 11:18:53.24ID:FsFcJUwr
要らないというのはちょっと正確性に欠けてた
普通のロジックを書く場合には要らない

DLL呼び出しとか、バイナリファイル書き出しとか、外部I/Fとして任意のアラインメントでのバイト列に直列化するパッケージがあって、内部では全て参照と言う名のポインタを扱うようにしてくれていたら何も問題は無かった
構造体ポインタでスライス作って、構造体のアドレスを入れて、という書き方を説明するためには、アドレスについて教えなけりゃならない
それを理由として新人研修の言語教育の候補リストから落としたんだった
2020/01/19(日) 18:45:36.29ID:E4qdczJe
すべてポインタてJavaか
2020/01/19(日) 21:41:47.53ID:K0reTlt5
構造体がポインタじゃないのなんでだろ
結局全部ポインタにしがち
イミュータブルな操作に値レシーバ使うことと整合させるため?
2020/01/20(月) 00:17:10.01ID:4Ml4H1E5
・構造体配列のアクセスがゲロ遅い
・GCに負担がかかる
・エスケープ解析が困難
・C/C++との相互運用時に>>218のような変換が必要になりクソ非効率だし実装も面倒
・nilを受け入れないことを保証できない
2020/01/20(月) 10:38:34.77ID:Ta+b5biN
CL 187317 for the current proof-of-concept implementation.
https://go-review.googlesource.com/c/go/+/187317
2020/01/20(月) 11:55:50.46ID:eiih9B9I
>>221
より良きアセンブラとしてC言語からの代替という目的だと、性能に対しての多少のコーディングしづらさはトレードオフの許容範囲ってことか
こりゃ、どうにもならないなー
>>208さんの言うように静的解析でガードするのが正解なんだな
224デフォルトの名無しさん
垢版 |
2020/01/20(月) 13:14:26.10ID:0GX6odYx
Cと同じものが欲しいならCを使ってれば良いんだよ
2020/01/20(月) 14:06:44.63ID:OxRp59bR
正論
226デフォルトの名無しさん
垢版 |
2020/01/20(月) 15:43:03.96ID:lA6Ihl1+
GCが欲しかったんだよ
2020/01/20(月) 18:15:01.52ID:LSsGv7mq
静的解析でgolangci-lint導入してみた

そしたら gosimple が大量に felse == じゃなく ! 使えと
うるせー!年寄りには ! は見辛くて見逃すんだよ!!
どこだよ、オフする設定方法
2020/01/20(月) 18:26:26.20ID:Ta+b5biN
felse てw
2020/01/20(月) 18:33:13.71ID:s/Cy+4Aw
フォールス
2020/01/20(月) 20:08:08.71ID:YdJ/u2zR
TYPOした鬱だし
2020/01/20(月) 22:17:58.60ID:2yM9TKqu
だっさ
2020/01/21(火) 19:27:40.22ID:o0UeX6qu
静的解析の余計な判定をオフする方法がわかったんで書いとく

// nolint:gosimple
とか行の後とか前行に書くとそこだけオフされる
設定ファイルでオフすると設定ファイルを公開する手間が増える
コードに書いておく方がベターだと思った
2020/01/21(火) 20:10:41.23ID:NzRBbl2V
素直に ! 使えw
2020/01/21(火) 20:41:44.16ID:UsGwmUNt
>>232
色変えろ🎵
2020/01/23(木) 09:22:53.97ID:pzDfErEA
GO2になるのいつや?
2020/01/23(木) 10:13:08.23ID:yjFFgoKI
https://blog.golang.org/toward-go2
Go 1.20がGo 2.0になるらしいから順調にいけば2023年
2020/01/23(木) 22:59:41.19ID:hGTEnJ15
ひとことでいうと
この言語は名前がだめ
2020/01/24(金) 00:05:38.38ID:oUbAtTQV
goでググるな
golangでググれ
2020/01/24(金) 01:02:54.82ID:07dDYyB2
cとかdよりは……
240デフォルトの名無しさん
垢版 |
2020/01/24(金) 11:30:28.77ID:ytRnz1Ft
一時期Cの関数を検索したかっただけなのにphpのばっかり出て来たときは辟易した
2020/01/24(金) 16:05:17.82ID:UzV8rxSa
一時期旧日本海軍の軍艦の画像を検索したかっただけなのになぜか
萌え絵のおっぱいおねーさんばっかりでてくる、みたいな状況か
242デフォルトの名無しさん
垢版 |
2020/01/24(金) 16:06:50.05ID:D9pKpEah
JULIAが最悪
2020/01/24(金) 16:20:31.67ID:DOTl6W7s
www
2020/01/24(金) 23:34:56.86ID:e4qsn6ol
MFCのCStringもヤバい
2020/01/25(土) 00:34:31.13ID:xHG8Mzpn
ご覧〜
2020/02/01(土) 05:08:16.60ID:dRW3BMck
The Go Programming Language Specification
Version of July 31, 2019
https://golang.org/ref/spec

Goプログラミング言語仕様
Version of September 4, 2012
このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。
このドキュメントは、http://golang.org/ref/specの翻訳です。
http://golang.jp/go_spec
2020/02/01(土) 18:04:32.61ID:QlkeBgTk
php界隈みたいに翻訳してくれる神様降臨してほしい!
2020/02/02(日) 01:44:28.81ID:EdXZobHi
頑張ってくれた先人には申し訳ないけど
古い情報がトップに出てくるのは悪影響しか無い気もする
2020/02/02(日) 19:09:21.25ID:iIujTevh
どこの言語も同じだよな

特にモジュール関係はどの言語もひどい有様で初心者が皆困惑して言語から離れる

一度使用固めたら不都合でも10年は同じものを使って欲しいw
2020/02/02(日) 19:15:45.79ID:iIujTevh
今発売されているGoの入門書でモジュール対応してるものってあるの?
2020/02/02(日) 19:31:26.77ID:N5COx75g
モジュールと言われても用語としての範囲が膨大すぎて意味が伝わらない
2020/02/02(日) 22:01:03.97ID:N57GyRxf
みんなのGo買ったけど初心者向けじゃなくて読んでないんですが
本当に初心者向けの本ってありませんか?
2020/02/02(日) 22:10:14.40ID:dqawCQuQ
本じゃないけど

Golang tutorial
https://golangbot.com/learn-golang-series/
2020/02/03(月) 00:07:31.65ID:Uql495sI
>>252
今いい本はないと思う
255デフォルトの名無しさん
垢版 |
2020/02/03(月) 12:03:18.74ID:62FLJlST
みんなのGoってオンラインで無料で全部読めるやつ?
2020/02/03(月) 12:29:31.57ID:YoBHNt10
>>252
改訂2版 みんなのGo言語、2019/8/1
この本は、各言語の「Effective 何々」に当たる本

改訂2版 基礎からわかる Go言語、古川昇(エイベル)、2015
この本が初心者向けの文法書

>>246
に書いてある、翻訳プロジェクト、公式サイトの日本語訳
http://golang.jp/
は、エイベルの古川部長と社員が書いていた
2020/02/03(月) 13:10:43.80ID:gvFxJnFo
ガチの初心者がGoなんか使って何するのか、嫌味じゃなくて興味がある
Goは言語だけできても全く何の役にも立たないと思うが、
本来のGoのコンセプトの通りに、ペーペーにGoだけ覚えさせてアプリケーションコードだけ書かせるような組織が日本にも存在する時代になったのだろうか
258256
垢版 |
2020/02/03(月) 16:01:19.93ID:YoBHNt10
サーバー側は、Ruby → Node.js, Go

今世紀最大の起業家、Vagrant の作者・Mitchell Hashimoto なんか、まさにそう。
今や、Go の重鎮

Ruby on Rails, Sinatra などで、サーバー側を一通り作った人が、Go へ行く。
そういうキャリアパスでは「みんなのGo言語」は、良い本
2020/02/03(月) 18:05:01.17ID:XimuQ1Xy
>>257
>Goは言語だけできても全く何の役にも立たないと思うが、

Goに限らず汎用言語はみんなそうだろ
標準ライブラリが充実してて言語の構成要素が少ないGoを
最初の言語として選ぶのは悪くない選択だと思うぞ
C/Java/C#/JavaScriptらと比べるとずっと簡単
2020/02/03(月) 18:16:47.48ID:Uql495sI
だからこそモジュールのバージョン管理が大事なんだと思う
2020/02/03(月) 18:18:43.56ID:Uql495sI
基礎からわかる Go言語もずぶの素人には難しいと言うか無理だろこれは
2020/02/03(月) 19:53:53.66ID:fumIbgov
関数の引数で []*xxx と []xxx があるんですが、どっちを使ったらいいんでしょうか
2020/02/03(月) 20:45:13.09ID:eCgFnDlS
間違ってたらコンパイルエラー出るから、コンパイルエラーが出ないほう
呼んだ先の関数の引数の定義をよーく読め

でも、実際に渡している方の部分を見て書いてる可能性もあるか……
インターフェースの配列を受け取る関数だとすると、どちらでもコンパイルエラーは起こらない
ぶっちゃけ、その場合はどちらでも構わないことが多い

[]xxxxは、xxxxがインターフェースでなく構造体だったなら、十中八九はバグだと思う
バグでなく意図的に使うケースもありはするけど………………
2020/02/03(月) 21:09:34.89ID:gvFxJnFo
>>259
もちろんライブラリやフレームワークの学習は前提だけど、
仮にプログラミング初学者がGo勉強して基本的なCRUDアプリを作れるようになったとして仕事あるか?
極端な話、初学者がSpringとかASP.NETとかRailsとか覚えたら、
サーバーを起動する方法もその上でアプリを動かす方法も知らなくても仕事はいくらでもあるわけだよ
一方Go名指しの求人って、ほぼ例外なく、複数言語が使えてAWSもわかるフルスタックな人が期待されてると思うんだよな
もちろんGoが使えたらプログラミングの素質はあるだろうってことでの採用はありうけど、
そうやって入った環境では多分Goを書かせてはもらえないだろう
2020/02/03(月) 21:11:33.43ID:fumIbgov
なんかポインタとsliceが糞だなあ
2020/02/03(月) 21:12:18.59ID:fumIbgov
containsメソッドすらないとか頭おかしい
2020/02/03(月) 22:08:48.44ID:XimuQ1Xy
>>264
同意するかは別にして言いたいことは理解した
そういう内容なら「Goは言語だけできても全く何の役にも立たないぞ」じゃなくて
「初学者がGoだけ習得しても仕事はないぞ」って書けばいいんじゃないかな
2020/02/03(月) 23:33:18.01ID:MUEM5Vrv
>>266
https://play.golang.org/p/fZ3EJyfPYWg
(メソッドじゃないけど)

やはり reflection は遅いな…… 早く >>222 の contracts を正式採用してほしい
2020/02/04(火) 18:47:00.52ID:XAK/YcTO
Goは標準ライブラリが洗練されてない感じがする
2020/02/04(火) 21:23:46.96ID:U30pp8jN
go言語って糞じゃね馬鹿じゃね
2020/02/04(火) 21:32:43.59ID:U30pp8jN
結局みんなと同じようにRuby on RailsとかPHPやっとけばいいんじゃねえのか
人と違うことしてる俺様かっこいいみたいなデスクトップのLinux使ってよく分からないエラー出ながら使ってる奴とか
そういうことじゃねえのかポインタとかスライスとか糞
[]xxxと[]*xxxをAPIのレスポンスで返したら同じjsonが返ってくるとか糞
普通ポインタの配列なんだからアドレスの羅列が返ってくるんじゃねえんか
マジ糞言語
2020/02/04(火) 21:58:02.63ID:zLczLA6F
スクリプト言語ならpythonじゃないの今は
2020/02/04(火) 22:07:10.93ID:Z75ak/G2
goはあちらこちら洗練されてない。存在としては好きなんだがなぁ。
2020/02/04(火) 22:19:47.96ID:/eeo/zhy
洗練されているプログラミング言語ってあるのか?
2020/02/04(火) 22:39:33.05ID:Bi0juC3i
矛盾が少なくて必要最小限の仕様しかない、という意味ならC
だから未だに現役なわけで
俺はJavaScriptが好きだけど
JSもCと同様Alt-JSが大量に発生したものの殺しきれなかった、という意味ではある程度洗練はしている
言語としての問題は typeof(null)==="object" 位
2020/02/04(火) 22:49:15.87ID:U30pp8jN
やっぱgoに使い慣れている人でも糞だと思ってるんだな
2020/02/05(水) 00:01:28.88ID:+M89QQ88
>[]xxxと[]*xxxをAPIのレスポンスで返したら同じjsonが返ってくるとか糞
ちょっと意味がわからないけど、要するにポインタレシーバでのインターフェースで実体も受け取れるという話じゃないかと思うんで同意
すんごくブッ飛んでるよなあれは……
2020/02/05(水) 00:11:37.94ID:+M89QQ88
JavaScriptも嫌いじゃないけど、ほぼほぼ毎年仕様が追加されていて着いていけない
prototypeで書いてもいいよね?bind使っててもいいよね?ダメ?
2020/02/05(水) 01:02:22.30ID:gohv3xpv
goは何がだめといって、まず名前が駄目
2020/02/05(水) 01:28:31.42ID:+M89QQ88
公式サイトですらgolangだもんな……

C言語よりは検索性に優れてるよ!w
甲乙じゃなくて丙丁つけがたい争い
2020/02/05(水) 09:20:22.69ID:xGO7LiGl
go とか [] とか []* とか すごく検索しづらい
2020/02/05(水) 09:21:05.78ID:jAnPlWtF
>>278
エアプかよ
さすがにbindがNGは今時ないと思うぞ

まあそうやって駄目な理由を探しているようではずっとエアプのままだろうよ
goが洗練されていないのは当たり前、新しい言語だからだ
何だかんだでJavaScriptは25年、Cなんて50年近いのだから、必要な仕様はとっくに入っている
JavaScriptでも、今追加されている仕様はそもそも「あってもなくてもいいもの」でしかない

それに比べて、まだgoは根本的な部分で仕様変更が為されている段階だろ
この意味では、今現在のgoをプログラミング初心者が触るのは間違っているとは言えると思うけど
お前も含めて
2020/02/05(水) 09:26:08.48ID:xGO7LiGl
糞じゃね言って同意って言われるのが終わってる
否定してほしくて敢えて過激なこと言ってるのに
2020/02/05(水) 11:25:45.04ID:xJPwpbdq
Goが気持ちいいのは、意識高い先人達が築き上げてきた無駄に複雑な数多の概念を「Goだから」で一蹴できるところ
例えばテストコードの assert that 系のDSL
誰もが薄々糞だと気付いていたが、意識高い空気がそれを許さなかった
それを堂々と「こんな糞は要らんかったんや!ifでええんや!」と言えるお墨付きが貰えた
Goが数々の欠点にも関わらず言語として好まれた本当の理由は、そういうカタルシスにあると思うわ
2020/02/05(水) 11:28:29.38ID:jAnPlWtF
>>283
構ってちゃんは死ね
また、そういう態度はWebを駄目にするからマジで死ね
2020/02/05(水) 11:38:29.79ID:jAnPlWtF
>>284
それは一理ある
公式でも言っているとおり、Goは敢えてガラガラポンしている
多分、いわゆる「お作法」に辟易している若くて元気のいい奴に受けているのだと思う
だから「結果的に再発明になってもいい」と思える奴等には良いプラットフォームだろう

(なお俺はassertなんて使わないことは一応付け加えておく)
2020/02/05(水) 12:34:56.45ID:qmME163k
みんなgoとかgolangって書いてるけど実際はGoなんだよね
2020/02/05(水) 13:20:07.74ID:a4For48W
Goだけで全て完結して欲しい割りとマジで
2020/02/05(水) 14:25:36.89ID:37hCX2la
Hiromi Go
2020/02/05(水) 14:30:53.97ID:qmME163k
文字関連のライブラリとかかなり雑と言うか古臭く感じる
cから発展したともとれるが嫌な感じだな

uint64を文字列にするのもいまだにググって調べてる
2020/02/05(水) 14:47:19.60ID:37hCX2la
毎回ググって調べてる奴の方が雑…というか鈍くさい
2020/02/13(木) 21:15:58.79ID:T5TlK5HS
>>284
俺みたいな老害Cプログラマがマウント取りまくれる言語仕様なんだよね
例外とかいらん!オブジェクト指向もいらん!
スクリプト言語のおしゃれ感もいらん!
2020/02/13(木) 22:33:18.92ID:iq5JxXln
interfaceとgoroutineはオシャレだと思うぞ。あとはダサダサだけどw
2020/02/13(木) 23:42:46.27ID:XZZdbCcO
selectの非同期待ち受けって、素敵だと思うの
もじもじ……
2020/02/13(木) 23:49:11.45ID:TfOBxj3E
goroutine周りは記述が簡便で初心者も手を出しやすい雰囲気を醸し出してるのに、実際には低レベルで罠が多いんだよなあ
これだけ徹底的な低能仕様なのにデッドロックに対する安全機構のようなものが何もないのはいかがなものか
せめてpromise的なのくらいは欲しい
2020/02/13(木) 23:58:15.23ID:Dd88Q3ZL
context を使えばいいじゃない
2020/02/13(木) 23:59:19.40ID:WnzNNrEx
Goの非同期機能の公式の説明で共有メモリは危険だとかドヤ顔で講釈垂れてる割には
ちょっとchannelの扱いをミスると簡単にデッドロックするんだよな
Goの設計のセンスは基本的には素晴らしいと思うけど、
非同期処理の難しさに関してはGoをもってしても効果的な解決法を見つけられなかったのは残念だな
2020/02/14(金) 00:51:14.63ID:omTyaEgD
日本人がROKUを作るしかないん?
2020/02/14(金) 01:41:01.83ID:ZOPvzA9P
わー、おもしろーい(棒
2020/02/14(金) 01:56:54.67ID:Hve2JDLg
rokuなもんにならんぞ(´・ω・`)
2020/02/14(金) 02:26:38.26ID:uaJ858N7
おっさんが多いスレッド
2020/02/14(金) 17:05:12.42ID:eYQzFX5X
Raku?
2020/02/23(日) 01:33:36.39ID:U23kWfzF
golang.jpが壊れて治らないから諦めてwebarchive行くことにした
2020/02/23(日) 05:51:08.90ID:PJULYhLo
あのサイト更新しないなら迷惑だから手放して欲しい
2020/02/23(日) 07:32:28.47ID:o7OSgZYn
golangが完全に終焉するとき
名前がgoneにかわる
2020/02/23(日) 17:32:58.19ID:7lSJO0LZ
golang-jp.netみたいな日本向けドメイン取って誰かが新しいサイト作って
2020/02/23(日) 17:33:15.17ID:7lSJO0LZ
アフィリエイトで広告踏みますのでよろしくおねがいします
2020/02/23(日) 18:26:12.17ID:gLwCsTk/
gone lang
2020/02/24(月) 09:46:04.88ID:bte5/Coq
Ghosn lang
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況