Go language part 2

レス数が1000を超えています。これ以上書き込みはできません。
1
垢版 |
2017/11/11(土) 19:25:26.19ID:X8lWnCzG
Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。

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

日本語訳
http://golang.jp

※前スレ
Go language part 1
http://mevius.5ch.net/test/read.cgi/tech/1381374291/
955デフォルトの名無しさん
垢版 |
2019/09/16(月) 18:17:36.13ID:bz+49ZQ6
Goに入りてはGoに従え
2019/09/16(月) 18:58:40.57ID:1T7dcyJv
>>954
おっ、これか!かなり新しい機能なんだね
2019/09/18(水) 16:39:28.43ID:eGDamTSl
if err != nil書くのに疲れた!
2019/09/18(水) 18:10:07.67ID:p1NtGLAE
普段からシェルスクリプトとC書いてるから
毎回エラーチェックするのは特に違和感なかったな
他の言語の人からしたらtryやbeginで囲ませろってなるのはわかる
2019/09/18(水) 20:21:01.19ID:f0xu4jQt
なんでもかんでもthrowしてくるJavaとかに嫌気をさしてたんで、Goは結構気に入ってるJava歴20年長な俺
catchの羅列はもうお腹いっぱい
2019/09/18(水) 23:16:25.02ID:6T+8t/8R
ハゲドゥ
2019/09/19(木) 08:20:30.03ID:dPEIZtBn
Goに入りてはGoに従え
2019/09/19(木) 08:50:40.05ID:JkAL/VJR
>>954
新しい機能すぎて、まだVSCodeのプラグインが部分的にバグるという罠
デバッグつきでは動くのに、何故かデバッグなしで起動できん現象
2019/09/19(木) 08:55:16.81ID:JkAL/VJR
パッケージのサイト名をexample.comから変えようと思ったんだけど、Gorename使ったことないんでよくわからない
どこのwebサイト読むと分かりやすい?
VSCodeでりふぁくた
2019/09/29(日) 23:06:03.54ID:3kb1gpZy
vim-goはマージ版gocode使ってるそうでVimで補完プラグインを探してたところ
govimがよさげだった
2019/10/05(土) 10:25:12.10ID:rY1OpV0v
tryその後どうなのかねぇ
2019/10/05(土) 17:08:36.14ID:NruIZMq0
どんなんだっけかな?全く困らんから別に要らんけど
Javaカスみたいなのはやめてほしいな〜
2019/10/05(土) 18:48:13.08ID:9nB6oJh+
みんなのgo買ったけど初心者向けじゃなくて損した
2019/10/05(土) 20:34:53.19ID:w+56Q5Xl
tryリジェクト以来、議論がトーンダウンしちゃったのかな
結局、if err != nil でいいじゃん的な
969デフォルトの名無しさん
垢版 |
2019/10/07(月) 00:24:36.00ID:yJRxiL33
タプルが型でないのが問題
2019/10/08(火) 18:57:02.45ID:EDowWias
プログラミング初心者です。
N回同じ文字列を出力するにはどうすればいいのでしょうか?
2019/10/08(火) 19:05:10.52ID:gX5kmLB9
fmt.Println(strings.Repeat("Hello", N))
2019/10/08(火) 19:07:10.80ID:J68M6wrj
詳しい解説サンクス
2019/10/08(火) 19:45:44.42ID:EDowWias
>>971
ありがとうございます!
2019/10/13(日) 16:53:19.74ID:f6QHKDSD
go modules で GOPATH 以外にプロジェクト置いてるんだけど、godoc -http=6060とドキュメントを確認しようとしても出てこない
と探すとissues#26827がクローズしてないからまだmodulesには対応してないのか
メンドクセ
2019/10/13(日) 18:53:07.17ID:f6QHKDSD
issues読んでみたら1.13試してみてという話があったけど、
1.13入れてみたらgodocのインストールがうまくいかねー
2019/10/14(月) 10:30:00.46ID:Sxli2RO4
code.google.com/p/go.tools/cmd/godoc から入らなかったんで、
golang.com/x/tools/cmd/godoc から入れたけど、やっぱりmodulesなソースはパッケージの一覧に出ない
いちいちgithubにプッシュしてgodoc.orgで見てる…
2019/10/14(月) 10:44:28.82ID:Sxli2RO4
modulesは見限って$GOPATH/srcで開発するしかないのか?
2019/10/16(水) 21:25:43.79ID:mOka02DZ
うちとこJava/C#が主力な会社
面白そうだから布教してみようと思ったんだけど、結局C言語からの直系なだけで、Java以降とは似て非なるものだから布教は無理なんだと、よくわかった

あいつら新人類は実体とポインタにまみれたC言語の素養がないから、うっかりと参照を代入する気楽さで構造体の実体をコピーして操作する感じのミス連発

C言語の経験なしにも関わらず、苦労せずにGo言語に慣れたって人いる?
そして、今さらポインタと実体を残したgoogleの意図も良くわからない。参照でよくね?
2019/10/16(水) 22:53:56.55ID:cnP9tzc/
ただの慣れじゃねC#の構造体も値型だし
値型の方が有利な場合がある
例えば構造体のでかい配列を作る場合は値型の方が一気にメモリ確保するから速いはず
2019/10/16(水) 23:11:13.99ID:EI1oGh2h
>>978
回り見てるとスクリプト言語出身の人はGo移行についてこれてない
Cでそれなりの規模のアプリ書いたことがある人がジワジワと良さを認識してる(すぐに良さがわからないのは共通してる)
C++出身の人はRustを気に入ってるが
2019/10/16(水) 23:48:28.74ID:mOka02DZ
ポインタと実体という概念がどうもしっくりと来ないみたい
Java以降だとプリミティブ以外は全部インスタンスの参照で統一されていてシンプルになってるから
そこいらのハードルが新規参入の障壁になってる可能性は高いんじゃないかなとか感じてる

しかし惜しいと思うのは、実体とポインタが混在しえるコンセプト
Cからの派生だからといって実体としてのインスタンス化って、本当に必要だったのかな?
&とか*なんて廃止して、全てはポインタの言い換えである参照を扱うというJavaとかのアイデアは多重間接参照(ポインタへのポインタ)が扱いづらくなる一方で概念的な単純さをもたらしてくれる
ぶっちゃけポインタへのポインタなんて、普通はそんなに使うこと無いから

参照を採用していたら、レシーバーはポインタで記述とか、実体でのセレクタでポインタレシーバーも呼び出せるとかイミフな仕様もスッキリとしたんじゃないかと
多分、ポインタを残したことには深慮遠望があるんだろうけど、使っていてイライラしてくる
2019/10/17(木) 00:01:47.10ID:wMsZ+t6y
具体的には構造体のスライスを使うために構造体ポインタのスライスを書くのがイライラ
でもポインタにしないとrangeでコピーされちゃうから
これって実はエレガントな書き方があったりする?
2019/10/17(木) 00:05:09.89ID:wphaTNNp
まあ確かにその辺は混乱する
ローカル変数の実体のポインタをリターンするとか
C脳ならありえない
2019/10/17(木) 00:16:29.41ID:tO9KeanL
Goは全然気持ち良いけどDartの酷さがやばい
あれはスクリプト言語出の人らだと大丈夫なんか?
2019/10/17(木) 00:18:24.47ID:wMsZ+t6y
>>979
構造体のデカイ配列ったって、マーシャリングして外部DLLに渡すとか極特殊な用途でしか使わなくない?
2019/10/17(木) 00:53:17.22ID:wMsZ+t6y
Goは確かに気持ち良いね、テストからカバレッジ、マップにスライス、ゴルーチンとチャネル
(でも気持ちよさの基準がCなのは否めない)
interfaceとか目から鱗だった。元ネタはなんだろ?
987デフォルトの名無しさん
垢版 |
2019/10/17(木) 17:11:40.24ID:TwA5RghT
前は動いてたのに
run も build も

package main: no Go files in hogehoge とか
can't load package: package main: no Go files in hogehoge とか
出るようになって
ハマった

ソースファイル名を _fugaufa.go みたいに _ で始まってたらあかんの?
時間還せ
988デフォルトの名無しさん
垢版 |
2019/10/17(木) 17:12:22.77ID:TwA5RghT
>>986
>気持ち良い

ガベコレとゴルーチン以外で何があるんです?
989デフォルトの名無しさん
垢版 |
2019/10/17(木) 19:03:27.04ID:3pHAMjHI
var は気持ち悪い
2019/10/17(木) 19:32:11.66ID:Fnsxe4OK
>>987
https://golang.org/pkg/go/build/#Context.Import

In the directory containing the package, .go, .c, .h, and .s files are
considered part of the package except for:

- .go files in package documentation
- files starting with _ or . (likely editor temporary files)
- files with build constraints not satisfied by the context
2019/10/17(木) 19:32:31.41ID:1/NIhUk4
>>989
言われてみれば、varって昔のBASICのlet並みに要らない子だね
2019/10/17(木) 20:40:18.77ID:fUTf6AOQ
varはバーカよけ
2019/10/17(木) 20:40:53.90ID:tO9KeanL
トップレベルの変数どうやって宣言すんだ?
2019/10/17(木) 20:46:45.50ID:fUTf6AOQ
普通にそのまま
2019/10/17(木) 21:25:40.03ID:wMsZ+t6y
変数名 型
だけでも、構文として破綻しているようには見えないもんな。C言語もそうだし
当然にvar{}も要らんし
あれ、func も不要じゃね?
なにか必要である理由ってあったかな?
2019/10/17(木) 21:27:23.25ID:wMsZ+t6y
無名関数作るとき用くらい?
2019/10/17(木) 21:37:21.35ID:wMsZ+t6y
次スレ作ります
2019/10/17(木) 21:38:38.42ID:wMsZ+t6y
Go language part 3
https://mevius.5ch.net/test/read.cgi/tech/1571315884/
2019/10/17(木) 21:42:09.40ID:su/chz7m
構文解析が楽とかだった気が

最初の方のトークンでどの構文(変数定義とか関数定義とか)なのかが分かったほうが
後の方のトークンでやっと分かるより楽
2019/10/17(木) 21:56:16.73ID:wMsZ+t6y
んー、:=で型推測をぶちこんでくるアグレッシブさなのに?1000ならIsNil()追加
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 705日 2時間 30分 50秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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