Go language part 2

■ このスレッドは過去ログ倉庫に格納されています
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/
2019/05/13(月) 22:09:21.49ID:TQnHGtfd
>>797
360度、全包囲網じゃなかったっけ
2019/05/14(火) 08:39:48.15ID:FDFESg8Y
昨日からGoを始めた
いにしえのCの雰囲気があるねコレ
800デフォルトの名無しさん
垢版 |
2019/05/14(火) 11:32:35.26ID:HHew+yI/
K&R初版のゲラ以前
801デフォルトの名無しさん
垢版 |
2019/05/15(水) 19:59:12.03ID:jISHj/fI
モダンなc
なんだけど時代に逆行してる気がしないでもない
2019/05/15(水) 20:03:37.91ID:BmhVNYvI
最初、type の後置と := を見て pascal みたいだな、って思った
803デフォルトの名無しさん
垢版 |
2019/05/15(水) 20:20:41.30ID:jISHj/fI
分かる
2019/05/15(水) 21:14:38.49ID:mNFQLWUr
あんまり不満はないがimport文の範囲指定はもっとどうにかならんかったのかと思う。
あの辺のネームスペースはもう少しなんとか出来るだろ。
2019/05/16(木) 01:10:10.84ID:tG/7hmaW
モダンな言語で型が後置な理由
https://teratail.com/questions/188903

モダンな言語、それがGolang(´・ω・`)
2019/05/16(木) 19:50:59.62ID:6G9eME8R
関心の的というか集中すべきものは変数名であって型じゃないからな

自分でJavaやC#でコード書いてても先に変数名を書きたくなる
2019/05/16(木) 23:57:45.28ID:AT1Yubce
てかストラウストラップもc++で後置にしようとしてたんだぞ。
2019/05/17(金) 02:46:59.09ID:pn4AcrMm
>>805
古いプログラミング言語にも後置のやついっぱいあるだろ
2019/05/17(金) 03:32:30.17ID:SE0Yqfdd
Pascal 「俺の時代が来たか」
2019/05/17(金) 07:36:08.27ID:G8HAJ/++
delphiも生きてるしな。。。
811デフォルトの名無しさん
垢版 |
2019/05/21(火) 12:19:03.51ID:t59GonvS
Pascalは今となっては簡潔に書けないのが難点
812デフォルトの名無しさん
垢版 |
2019/05/21(火) 20:07:47.66ID:4RMqyAdM
簡潔である必要が?
813デフォルトの名無しさん
垢版 |
2019/05/28(火) 10:16:10.30ID:PcaEkHWB
log.Fatalするくらいなら
panic使ったほうが良くない?
2019/05/28(火) 10:46:11.65ID:8pKxeztz
それらは異なる意味合いで作られてる
815デフォルトの名無しさん
垢版 |
2019/05/28(火) 12:00:27.70ID:PcaEkHWB
kwsk
2019/05/28(火) 14:46:19.00ID:k29XiGlh
ドキュメント嫁
2019/05/28(火) 19:43:23.66ID:gVCkJn5v
GOで競技プログラミングしようとしたらどんなpackage構成が正解なんだろ。
今はスニペット関数が衝突しないように問題毎にフォルダ切ってるんだけど何か正解ないのかな。。
2019/05/28(火) 20:43:35.23ID:PbiRk+VQ
Goでやらないのが正解だろ
819デフォルトの名無しさん
垢版 |
2019/05/28(火) 21:43:35.06ID:NlvIY6UH
Goでやりたいねん
2019/05/28(火) 21:56:37.84ID:U6i03+mU
その手のバカはgoには向いてないよ。
c++,rust,haskellみたいな俺Tueeeeできる言語使ったらいいさ。
2019/05/28(火) 22:15:30.74ID:PbiRk+VQ
Goでやりたいならフォルダごとに分けるしかなさそうな気がしちゃうね
822デフォルトの名無しさん
垢版 |
2019/05/28(火) 23:35:48.29ID:pxWVGMCU
>>813
panicはdeferが実行される
致命的なエラーが原因によってdeferが実行されては困る場合log.Fatal
2019/05/29(水) 05:38:03.29ID:b5A3xZYy
>>822
ありがとう
2019/05/29(水) 06:03:28.83ID:oggR1pjG
error戻り値は受け取り側が握りつぶして処理を継続できる

panicは呼び出し側直後の処理の継続は阻止できるがdefer内でrecoverすれば握りつぶせるのでその外側では処理を継続できる

log.Fatalやos.Exitは強制終了できるがdeferによるリソース開放やロック解除の処理も実行されず終了する
こんなの使う価値ない
825デフォルトの名無しさん
垢版 |
2019/05/29(水) 19:07:28.75ID:cZaIHWPP
>>824
ありがとう
826デフォルトの名無しさん
垢版 |
2019/06/11(火) 01:13:12.54ID:SHxuCdJF
Goを使ったことないけど、gRPCとMySQLを使ってAPIを作りたい
バリデーションやORMのおすすめってなに?
フレームワーク使ったほうがいい?Ginが人気そうだったけど
2019/06/11(火) 20:50:40.66ID:GAHoXfWa
GoでORMは外れしかないイメージ
2019/06/12(水) 01:25:19.22ID:vwkZYy1l
Ginとかechoは使いたかったら使ってもいいと思う
ORMはgormと折り合いつけてうまく付き合うくらいしかなさそう
829デフォルトの名無しさん
垢版 |
2019/06/12(水) 19:43:34.95ID:3wcfQWS2
goでdb使うの?
なんで?
2019/06/12(水) 19:52:23.16ID:B3fU3E8i
DBは生で使いたいなぁ
ORM避け続けてるわ
2019/06/12(水) 20:43:22.98ID:KGbwAGnu
薄いORMは便利よ
832デフォルトの名無しさん
垢版 |
2019/06/13(木) 01:51:52.11ID:5YKezO5b
ありがとう。gormとGinを組み合わせて作ったりするのね。

>>829
既存システムのAPIを作りたくて、Goが候補にあがってる。
すでにあるMySQLのDBもあるのでそれを使うため。
2019/06/13(木) 06:17:29.52ID:bcw2IMf7
>>830
自分でSQLを書くような単機能のORマッパーもあるからそういうのは使ってるわ
RailsのActiveRecordみたいなのは使わないようにしてる
2019/06/13(木) 07:47:12.90ID:EqMWkM3O
DB一種類しか対応しなくていいなら、それほど気にしなくてもいい
2019/06/14(金) 01:27:33.96ID:XWUKBTLL
プログラミング言語別新規求人数
https://image.itmedia.co.jp/news/articles/1906/13/l_sh_prog_01.jpg
2019/06/14(金) 09:13:17.66ID:3eerMkFS
AI自走コンテストみたいなのもPythonとScalaだったな
Goで書きたかったな〜
2019/06/14(金) 10:44:14.47ID:cyYt7hBV
アカデミックな人たちってほんとScala好きよね
プロダクトで使うとめんどくさいことこの上ないけど
2019/06/14(金) 12:28:00.48ID:xe04MOrG
Unityが言語枠に入ってるのか。。。
839デフォルトの名無しさん
垢版 |
2019/06/14(金) 12:38:19.98ID:bpAwmG5b
SQLの方が驚き
840デフォルトの名無しさん
垢版 |
2019/06/14(金) 15:55:18.18ID:KT+BNezz
scalaの良さってなによ?
841デフォルトの名無しさん
垢版 |
2019/06/14(金) 16:49:08.99ID:M5SWZa9D
副作用がない
Java資産が使える
コードを非常に短く書ける
2019/06/14(金) 17:10:36.41ID:eBm/ZQJe
Haskellじゃだめなん?
2019/06/14(金) 17:14:04.45ID:cyYt7hBV
JVMなら正直ScalaよりKotlinの方が実用的だと思う
844デフォルトの名無しさん
垢版 |
2019/06/14(金) 17:23:20.00ID:Wi4bG/9M
ですよねー(*´・ω・`)b
2019/06/14(金) 18:15:55.93ID:g+H89gem
間違いない
scala組は早くkotlinに合流してほしい
2019/06/14(金) 18:54:17.29ID:eBm/ZQJe
そうやって文化の違う声の大きいやつを招き入れると、C++みたいになるんじゃないの?
2019/06/16(日) 10:38:23.17ID:yEr4r4hL
c++みたいにしたい奴は結構いる。
俺は反対だが。
848デフォルトの名無しさん
垢版 |
2019/06/16(日) 11:34:06.94ID:NdAq/MEw
むしろ内部破壊工作をたくらむスパイじゃないかと思える
2019/06/16(日) 12:38:36.88ID:E7tcb+8r
scalaは実質spark用の言語になった感
2019/06/16(日) 14:49:25.11ID:ybqQtnCX
Scala民はなぜかKotlinを敵視してるから合流しないと思う
2019/06/16(日) 17:11:02.09ID:sf2vtSAF
そんなビルド遅い言語は興味ないな
2019/06/16(日) 18:20:53.66ID:zV7uGblf
こういうやつな
2019/06/18(火) 09:29:42.66ID:qmIqf6/4
Goでも使っとけ
854デフォルトの名無しさん
垢版 |
2019/06/19(水) 05:01:14.42ID:tVNS+22r
【出資】松本卓朗 人工知能詐欺【注意】
https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/
2019/06/21(金) 09:53:14.59ID:nqNnSLIS
var list []string
if list, err := getList();err != nil{
doSomething()
}

fmt,Println(list)

みたいにerrはスコープ絞りたいけど、listは外でも使いたいときってどうしてる?

list, err := getList()
if err != nil{
doSomething()
}

ずっとこれで書いてるけど、errの汚染が気持ち悪くてしょうがない
2019/06/21(金) 10:08:37.15ID:7uBmdJ4z
{} で囲めばいいと思う
2019/06/27(木) 02:52:20.62ID:FaQ6+pyI
Next steps toward Go 2
https://blog.golang.org/go2-next-steps
2019/06/28(金) 20:22:50.40ID:D7IYfFOa
var list []string
{
var err error
if list, err = getList();err != nil{
doSomething()
}
}

理解できてなくて、返信遅くなったけどありがとう。
こういうこと?確かにいけるわ
2019/06/29(土) 17:07:31.88ID:aZLH26yH
>>857
それ読んだ感じ、Go2ドラフトの3つのうち2つは、近いうちに実装されるみたいね。
ジェネリクスはまだ揉めているようだ。

Go 1.13 → errorに他のエラーをラッピング可能になる
Go 1.14 → ビルトインtry導入

ドラフトのエラーハンドリングはボツになって、代わりにtryになった。
といっても、他の言語のようなtry〜catch構文じゃなくて、
if err != nil { return err } のシンタックスシュガーっぽいが。

a, err := foo()
if err != nil {
  return err
}

a := try(foo())
860デフォルトの名無しさん
垢版 |
2019/06/29(土) 21:01:36.05ID:c0pfCvxU
まあソレでいいんじゃない?
2019/07/07(日) 16:51:17.34ID:IBLOts2g
>>859
コピペ冗長なコードが減っていいですね。
1.14待ち遠しいね
2019/07/07(日) 18:06:09.39ID:0ubEvB6Y
糖衣構文と言うことは従来の書き方でも行けるんよね
天才達が考えた事なら間違いない
2019/07/13(土) 18:46:57.15ID:tImovYMg
一見して制御構文に見えないけど制御構文なので不気味だなとは思う
864デフォルトの名無しさん
垢版 |
2019/07/15(月) 23:34:52.25ID:P4CvUGaZ
z := try(foo()).bar(try(baz(try(x, err))))
うわあああ
2019/07/18(木) 11:26:51.33ID:8UzIj5wI
tryリジェクトかよ
エラー処理にどれだけ時間かける気だよいいかげんにせーよ
2019/07/18(木) 12:13:21.68ID:Nv4mVpEC
今まで通りでいいんじゃね
2019/07/18(木) 14:19:45.16ID:6LRPswFk
ほぼ宗教戦争だからな
ただしばらくしたら結局普通に入ると思うわ
他言語からの流入者が増えるに連れてコミュニティ内のtry賛成派が増えると思うし
2019/07/21(日) 17:48:53.13ID:IcUxNQlv
それ繰り返したらjavaになるだけだろ。バカなのかな。
2019/07/21(日) 17:58:10.25ID:v2qrtLZm
なんでもそうだけど
初期よりの中期が一番完成度が高い
2019/07/21(日) 19:48:34.89ID:f1dcD4h/
>>868
良い悪いじゃなくて確実にそうなる。
特にGoはコミュニティの意思が最優先だから、人が増えたら絶対に回避できない。
2019/07/23(火) 19:15:35.27ID:7uHwn8JE
単純にtryは気持ち悪い
2019/07/24(水) 07:58:26.60ID:xApiBXd0
確かに
873デフォルトの名無しさん
垢版 |
2019/07/24(水) 10:32:29.91ID:N8NvLFq2
challenge
2019/07/28(日) 15:45:26.20ID:T9XedO3O
nilチェックでいいと思うけどね
Cみたいなもんなんだし
2019/08/02(金) 21:56:22.85ID:hlWdSuTu
pythonとgoのどちらかを学ぼうと思っているのですがどちらのほうが就職では役に立ちそうですか?

ごく簡単なHPを作れるくらいのプログラミングの知識しかありません
2019/08/02(金) 21:59:32.62ID:XJV5qmce
就職云々なら Java がいいんじゃね(適当)
2019/08/02(金) 22:32:26.09ID:f+IY++fw
>>875
どういう職に就きたいのかによる
2019/08/02(金) 23:35:29.26ID:hlWdSuTu
>>876
比較的新しい言語のほうが寿命があるかなと
pythonは今大人気の言語のようだしgoもgoogleだから伸びていくように思います
>>877
特にこれといったものはないですがweb上で動かせるようなのがやってみたいですね
2019/08/02(金) 23:45:25.50ID:dz/JXxLP
pythonなんてjavaより古い言語なのに。
880デフォルトの名無しさん
垢版 |
2019/08/03(土) 00:36:11.96ID:+rHXCSdu
片方だけとかケチくさいな、両方やればいいのに
Pythonから始める方が楽だと思うが
881デフォルトの名無しさん
垢版 |
2019/08/03(土) 03:37:20.59ID:EXGEa6HH
そういう質問(`・д・´)ヤダ
882デフォルトの名無しさん
垢版 |
2019/08/03(土) 04:15:04.58ID:aApVXMvw
初心者はだまって C やっとけ
2019/08/03(土) 18:55:10.96ID:unPLGrrT
Web上で動かすって言ってもクライアントしたいのかサーバーしたいのかにもよる
Goスレだから一応言うとGoは基本サーバーアプリケーション向け
2019/08/03(土) 19:55:47.94ID:EXGEa6HH
goにgo
2019/08/03(土) 20:02:29.51ID:1Zar5HzA
勉強でwebsocketでチャットするサイト作ってて、
待ち受け用のただのhtml生成と、特定pathでwebsocketでjsonやりとりするようにしてるんだけど
こういうhttpとwebsocketみたいな別機能?って、別バイナリに分けるべきなんだろうか
それはそれでサーバ設定がめんどくさくなりそうなんだけど
2019/08/04(日) 10:12:08.59ID:MhvpWdMU
>>878
いわゆるWEBサービスみたいなのを作りたいならgoはあまりおすすめしない
作れないことはないけど主流とは言い難いし、職に就きたいという理由ならそんな仕事を探すのはほぼ無理
たぶん君の希望に1番近いのはRails
2019/08/04(日) 10:38:33.63ID:uhC0to7r
>>886
rails?初めて聞いたわ
pysonとかyoutubeなんでしょ?
railsってそれらを押しのけるほどの力を持ってるの?
2019/08/04(日) 10:43:10.51ID:8eqp+0G+
つりかよ
2019/08/04(日) 11:32:00.09ID:/i7K4ZYC
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
2019/08/04(日) 13:20:17.23ID:uhC0to7r
初心者なんで有名ドコロしかしらない

アプリっていうのはpythonとかgoじゃ作れない?
2019/08/04(日) 14:06:43.66ID:+opLpOKc
マジレスすると
なんていうか、
バイクレース出るならハーレーっすかね?有名だし。
ってバイクの免許持ってない人が言ってる感じ?

多分プログラミング言語云々言う前に
もっと根本的な事勉強した方が良いと思う。
892デフォルトの名無しさん
垢版 |
2019/08/04(日) 14:13:55.51ID:xpZyjwIo
釣られる人が居るとは思わなかった
2019/08/04(日) 14:18:29.06ID:uhC0to7r
javascriptでフロントエンド? goでサーバーサイド

みたいな感じで2つ学べば大丈夫
みたいな認識で大丈夫でしょうか?
2019/08/04(日) 14:21:08.15ID:+opLpOKc
釣りとか気にしてるのって馬鹿らしいと思わない?
マジレスしたら恥ずかしいと思ってる奴の方が
人間的に恥ずかしいと思うが。
2019/08/04(日) 14:23:43.85ID:+opLpOKc
>>893
とりあえず最初に勉強するのは一つの言語に絞った方がいいよ。
goは初学には向いてないと思う。
2019/08/04(日) 14:29:41.69ID:enQrPlk1
GOに入ってはGOに従え
2019/08/04(日) 14:38:32.98ID:uhC0to7r
まじか
もうプロゲートで最初の2つの講座終わったところなのに・・・
■ このスレッドは過去ログ倉庫に格納されています