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/
2018/08/29(水) 08:47:35.97ID:W9Gkpzht
>>365
↓読んだ?

1.2 GOPATHとワーキングディレクトリ
https://astaxie.gitbooks.io/build-web-application-with-golang/ja/01.2.html
2018/08/29(水) 08:57:37.96ID:ZDG8YYaG
おい、Go2がアナウンスされたのになんで誰も話題にしないんだ
2018/08/29(水) 09:08:44.76ID:/gLBAT04
1.11がリリースされても誰も話題にしないし
もうこのスレは死んでるんだよ
2018/08/29(水) 09:15:24.58ID:x+YoJacr
Errorのハンドリングで迷い出してんのな、今の仕様の方が時点の処理を考えるようになったし
冗長に見えるが実際堅牢さに貢献してると思うのだが
2018/08/29(水) 09:16:30.22ID:TnF3pzfH
>>366
go mod も自作パッケージ使う場合は src 以下で作らないといけないんですかね?
// import "a" とか // import "a/b" みたいな src 外では自分のパッケージを使えないということなんですか
2018/08/29(水) 09:32:57.13ID:1fu8l1A+
>>369
んー。でも冗長コードはあんまり書きたくないし、良いことじゃないの?
2018/08/29(水) 09:39:09.75ID:ZDG8YYaG
>>371
俺もそう思うんだけど、これは思想の問題だから揉めそう
2018/08/29(水) 11:07:56.13ID:x+YoJacr
確かに思想の問題なんだよな、例外的なの望んでる人は大抵デプロイするまでのプロセスの簡略化
現状で良い人は少ないと思うけど、リリースしてからの堅牢さを実感した人らで双方のステージが違う感じがする
2018/08/29(水) 12:26:06.26ID:rEBrQhP5
そういえば os.Exit() だと defer で登録した処理が実行されない、って
仕様はそのままなのかな
2018/08/29(水) 12:33:27.40ID:ysBmiu9w
変えたらおかしいやろw
2018/08/29(水) 13:31:28.21ID:rEBrQhP5
ところが runtime.Goexit() の場合はしてくれるんだよね…
2018/08/30(木) 00:14:56.28ID:ckC0jGgS
そらそうやろw
2018/08/30(木) 09:10:32.40ID:hez4Duar
なんだ、bot か
379デフォルトの名無しさん
垢版 |
2018/08/30(木) 10:11:11.51ID:S/vwwZyF
真珠湾
正反対すぎてω
2018/09/05(水) 09:27:40.99ID:ps0MFYyL
go触ってみようかと思うんだけどどこまで低水準なこと出来る?
Cと同程度?
2018/09/05(水) 09:48:42.73ID:tPjc+KWG
具体的に何がしたいのよ
2018/09/05(水) 16:21:13.70ID:ps0MFYyL
基本サーバアプリとモバイルアプリだけど、組み込みに使えたりするのかなと
2018/09/05(水) 20:08:36.48ID:zx26krSS
ラズパイとかlinuxは動く環境なら行けるで
2018/09/05(水) 22:20:41.96ID:tz4l12p3
グーグルの中の人のインタビューを雑誌で見たことがあるけど
組込みには向かないって言ってた
動的型付けやリフレクションをサポートするための情報がバイナリに入るので
サイズが大きくなるとか
あとガベージコレクションのある言語は、基本的に組込みには向かないんじゃないの?
2018/09/06(木) 05:58:38.62ID:3IjImnYf
組み込みならCの方がいいだろなあ
2018/09/06(木) 23:31:45.26ID:f6OhCMiw
mapをmakeで作る利点は何ですか?

m := map[ int ] int {}

m := make(map[ int ] int)
は使い分けする場合があるんですか?
2018/09/07(金) 08:23:19.41ID:LrV5PdxJ
空 map 作るなら全く同じ
前者は値の初期化ができる
m := map[int]int{1, 10}
後者は map のサイズを指定(メモリ獲得)ができる
m := make(map[int]int, 10)
2018/09/08(土) 10:54:50.34ID:phMov0/0
OSがない環境だとGCなぞ動かすランタイムも一緒に移植しなきゃいかんでしょうな
2018/09/09(日) 07:36:15.30ID:ubMLwZae
最近致し方なくGoを触ったが忌み嫌ってたほど悪くない
むしろいいね!
食わず嫌いはよくない
2018/09/09(日) 08:31:33.34ID:GrgCnaCp
癖になるよな。色々と独特だが、それが良い。
391デフォルトの名無しさん
垢版 |
2018/09/09(日) 11:43:30.25ID:Gp8oixlC
まわりがJava信者ばっかりでGoを使ってくれない
SpringBootに慣れすぎて移れないとか
2018/09/09(日) 12:59:01.79ID:qrt/xXSo
Javaで済むならそのままでいいのでは。
いままでのノウハウや資産を捨ててまでGoを使うという決断は中々大変そう
2018/09/09(日) 13:01:29.22ID:17nN/77v
自分では何も選択しなかったヤツがJava使ってるんだから
今後も新たな選択とかできないだろ
2018/09/09(日) 13:07:37.15ID:qrt/xXSo
Javaの開発が止まったとか大事件がなければそのままでもいいんやで。
あとは、Goにした方が明確に経済的メリットがある状況になるとか
395デフォルトの名無しさん
垢版 |
2018/09/09(日) 13:36:37.97ID:VTYeK97K
go使ってるやつだって流されて使ってるだけでしょ
2018/09/09(日) 14:01:28.15ID:17nN/77v
今流行ってるものは別にGoだけじゃない
Pythonだってブームはまだまだ全盛だし
Rustだって最近は注目されてきてる
React NativeやElectron、Nodeみたいなブラウザ外のJavascriptだって流行りと言えば流行り
2018/09/09(日) 14:37:24.61ID:GrgCnaCp
そもそも何を持って流されてると定義するかという哲学的な問いかけをされている気がする
398デフォルトの名無しさん
垢版 |
2018/09/09(日) 15:13:39.36ID:VTYeK97K
別に流されることを否定していない
javaの連中はおれも嫌いだけど、goの連中が揶揄するのは笑い種だ
2018/09/09(日) 15:26:53.96ID:JhYQOE9o
javaの連中ってのもものすごいラベリングだなw
書いてる言語で人を分類してるのかw
2018/09/09(日) 15:30:38.96ID:Br1UArj9
 ―┼‐         ノ     /   |  --ヒ_/     /   \ヽヽ    ー―''7
   `」   ┼,   二Z二   レ   /  /´レ' \ ―7 ̄}  |  ー-、   /
 (__  (|フ)   (__ノ  _ノ  ∨`  ノ  /  /     _ノ    \_

    ─┼-        /   |   ‐┼-   |     ー|―
    ─┼─ |   \ レ  /   ̄Tー  /      ノ -─
   (二フヽ  \/    _ノ   (二フ\  ヽ_ノ   / 、__

     i';i
    /__Y
     ||真||                   /⌒彡
  _ ||露||         /⌒\     /冫、 ) ・・・・・・。
  \ ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄\ `./⌒ i `  /ゝ    _,,..,,,,_
  ||\`~~´  (十万石)     \( >     ('\\  ./ ,' 3 `ヽーっ ・・・・・・。
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄\`つ    ⌒ _) l   ⊃ ⌒_つ
     .|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||                `'ー---‐
( 'A) ・・・。 〃∩ ∧_∧        <⌒/ヽ___
/(ヘ)ヘ    ⊂⌒(  ・ω・) ・・・。  <_/____/ zzzz・・・
         `ヽ_っ⌒/⌒c
2018/09/09(日) 16:52:48.50ID:+AEWPLI1
宗教上の理由でGo使えない人達は可愛そうだな〜
402デフォルトの名無しさん
垢版 |
2018/09/09(日) 17:31:54.12ID:VTYeK97K
ペチパーみたいな意味でしかないよ
2018/09/09(日) 17:36:01.61ID:Gp8oixlC
Javaしか知らない人の反応

・クラスも継承もないとか時代遅れも甚だしい
・例外を使わないエラー処理なんて考えられない
・Javaは20年以上の歴史があり、極めて安定しており実績が豊富だ
・Oracle様が万全の態勢でサポートしてくれるので今後も安泰だ
・Goはホビー向け言語で不安定でビジネスには使えない
・Mavenは最強だ。他の言語にこんな便利なものはないだろう
・Goに乗り換えたときの経済的利益を具体的な金額で教えて下さい
・金額を出せないなら、移るメリットがないってことですよね?

想像だけどw
404デフォルトの名無しさん
垢版 |
2018/09/09(日) 17:43:44.63ID:VTYeK97K
それは、君が反論できなかった内容のリストだろう
2018/09/09(日) 17:48:16.11ID:IKRRqsF+
分散メッセージングなんかはJavaの独壇場だしなあ
分散システムは大規模運用で叩かれないと
バグが全然減らないから実績が実力に直結する
2018/09/09(日) 21:31:54.54ID:XVLphpcz
>>387
いいね!
2018/09/09(日) 21:42:31.95ID:XVLphpcz
>>403
オブジェクト指向にクラスも継承も必須なのか?という本質的な問いかけを投げかけた。

そもそも継承を重ねすぎてわけわかんないことになってるのがjavaだったわけで、
javaに問題点を感じなければgoみたいな言語仕様は生まれなかった。
 
408デフォルトの名無しさん
垢版 |
2018/09/09(日) 23:21:33.79ID:VTYeK97K
よくもそんな出鱈目を
2018/09/09(日) 23:25:39.58ID:Br1UArj9
  /\___/\
/ /    ヽ ::: \
| (●), 、(●)、 |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|  ,,ノ(、_, )ヽ、,,   |  < まーたはじまった
|   ,;‐=‐ヽ   .:::::|    \_______
\  `ニニ´  .:::/
/`ー‐--‐‐―´´\
2018/09/09(日) 23:31:14.32ID:5iNlBkRk
自分はクラス設計もデザインパターンも全くわからないプログラマなので
クラスがないGoは天からの贈り物
2018/09/09(日) 23:32:58.79ID:qrt/xXSo
Cの置き換えになるなら極楽
2018/09/09(日) 23:37:50.66ID:MeVCq1uS
goは実験的な言語であって、明確に何かをリプレースしようと開発したわけじゃない
過去最もリプレースが進んだ言語といえばcobol→javaだと思うが、
それはcobolとは比べ物にならないほどjavaが便利に洗練されていたから

俺はgoにそれほどのポテンシャルを感じない
2018/09/09(日) 23:39:30.84ID:/8tmlAgh
データとはバイナリじゃなくてアクセス可能な情報構造だって考え方がクラスだから
言語仕様関係なく分かんないのは不味い
2018/09/10(月) 01:36:42.21ID:D09b3M0F
C⇢Go
2018/09/10(月) 07:18:46.01ID:5jmpyrtf
>>413
だったらstructで十分じゃん。って、考え。
型に対してメソッド追加できるし
2018/09/10(月) 08:18:30.58ID:gK8yyCgJ
javaもgoもどっちも書く俺はどっちの連中に分類されるんだろうか、、
2018/09/10(月) 08:23:45.86ID:MLFQqRH+
分類しなくていいんやで
2018/09/10(月) 10:53:04.51ID:Q9ZAajOd
>>412
goは現場から考え出された言語だよ。
実験的とか口から出任せすぎる。
生まれた経緯はgo blogに書かれてるから読んでみ。

基本的にはgoogle社内のc++プロジェクトの一部を置き換え目的で生まれた。
2018/09/10(月) 17:35:51.97ID:2Khhn9vO
>>417
みんな違って、みんないい。
2018/09/10(月) 20:32:07.90ID:bUDWLDgz
私は私
2018/09/10(月) 20:33:40.08ID:fvbXFcex
人生いろいろ、総理もいろいろ、言語もいろいろ
2018/09/10(月) 20:35:13.33ID:PkSNOikB
咲き乱れるの♪
2018/09/11(火) 09:29:03.32ID:6k8xV1k3
現場から生まれたなんてPHPみたいで嫌w
2018/09/11(火) 10:09:18.45ID:fg41yUTF
google発だからC言語の作者もいる所やで
2018/09/11(火) 11:54:44.51ID:ans9+8XX
>>414
四の五の言うな
2018/09/11(火) 13:32:38.35ID:zcd9cBbq
評価します
2018/09/13(木) 17:14:01.29ID:oE+h77UY
Go 2ブロックをおりる
https://www.infoq.com/jp/news/2018/09/go-2-draft-designs

Go 2の記事は貴重だけど全体的に訳が微妙
特に Gets off the Blocks → ブロックを降りる はひどい
2018/09/13(木) 18:08:06.14ID:eI/ngegc
ここ機械翻訳つかってんのかわかんないけどかなり翻訳ガバい
2018/09/13(木) 20:07:57.86ID:849KcrVE
get off the blockなんて言い方あるのか。勉強になったぞい
2018/09/13(木) 20:17:25.54ID:zbN5SpW6
get off / the blocksで訳しちゃったんだな
get / off the blocksが正解っぽい
2018/09/19(水) 21:24:23.02ID:+YOBErJm
handleブロックたくさん書きたいケースってあるのかね?適宜書いた方が見通しが良い???
2018/09/19(水) 21:25:49.04ID:+YOBErJm
書いた後で、エラー区別できるわけではなさそうだから適宜必要かという結論になった
2018/09/19(水) 21:38:55.61ID:zPb9SA0w
エラーは判別できるでしょ
今までは深さでエラー処理を重複して書いてたけど連鎖的に呼び出されるから、その都度必要な処理書くだけで良くなる
2018/09/21(金) 23:58:35.27ID:PuD0R/Ck
var b *bytes.Buffer
if a {
b = function()
}

http.NewRequest(`POST`, rawurl, b)

invalid memory address or nil pointer dereference

なんでなん
2018/09/22(土) 09:16:31.50ID:YkyW/fpS
なんでと言われても
2018/09/22(土) 11:35:48.04ID:7avfEzoP
>>434
bの参照先がつくられるかどうか確定してないじゃん
437デフォルトの名無しさん
垢版 |
2018/09/22(土) 12:38:07.36ID:xOVRbYWf
nurupo
2018/09/22(土) 13:22:51.61ID:zH/ripxa
これ読むとGoが如何に優れたJavaer避け仕様になってるかよく分かるな
https://ryb.orz.hm/articles/lang/lang1
2018/09/22(土) 13:31:41.43ID:Q74wZfz0
>>436
NewRequest の中で body.(io.ReadCloser) をやってるから if 文を実行せずに b を nil のまま渡したらダメということでしょうか?
2018/09/22(土) 13:49:44.17ID:3rcEF6jj
むしろそこまで分かっててあと何がわからないのかわからない
2018/09/22(土) 13:54:47.71ID:Q74wZfz0
if文が実行されなかったら nil を渡したい。それを簡素に書きたいそれが知りたい
2018/09/22(土) 13:58:39.71ID:asdM+Bs9
nilを渡すのが間違ってるで終わりなんだけど
2018/09/22(土) 14:04:30.64ID:asdM+Bs9
よく見たらnilでもいいはずだけど型がおかしく見える
2018/09/22(土) 14:09:35.66ID:Q74wZfz0
var r io.Reader

if a {
r = function()
}

http.NewRequest(`POST`, rawurl, r)

こうすればいいのか。すみません
445デフォルトの名無しさん
垢版 |
2018/10/01(月) 01:00:16.68ID:V7dobxJw
guiライブラリは何がおすすめ?
2018/10/02(火) 17:07:46.65ID:hoDCY76c
goでguiはあまりおすすめしない
2018/10/02(火) 17:31:02.89ID:yQrjpM9K
何でだろうね、全てをGoで書きたいのに
一応ツールキットの類は色々有るんだけど、GUI操作で部品作れるようなヌルポ系は無いな
2018/10/02(火) 17:54:56.57ID:hoDCY76c
試しにやってみたことあるけど、その分野はまだまだって感じ
自分でcontributeするくらいの気合が必要になると思う
449デフォルトの名無しさん
垢版 |
2018/10/03(水) 01:00:03.49ID:j3zVpsYV
Goに限らんけど、この手の言語はRestfulなAPIを提供するバックエンドだけにしてUI関係は他のフロントエンドを利用してブラウザ上で提供するのが良いのでは。
2018/10/03(水) 02:20:46.94ID:2V/j1rIZ
それはそうなんだが、せっかく単一バイナリで実行できるものが作れるんだから
GUIも簡単に組み込めるようになれば、デスクトップアプリケーションの分野も席巻するかもしれん
2018/10/03(水) 03:01:38.84ID:EmR3zjwb
GoでGUIってだめなの?
UNIXなら他言語と大差なくないか?
2018/10/03(水) 05:47:42.28ID:qAqPsDCa
UNIX限定のGUIアプリって時点で超ニッチだけど、それならいいんじゃない
普通にWinとかMacを想定するならオススメしない
2018/10/03(水) 06:12:59.54ID:EmR3zjwb
いや、WinAPIだと他言語のほうが使いやすいねって言ってるだけで、Windowsで動かないもの作る話じゃないんだよね
2018/10/03(水) 07:55:21.75ID:MQnZqDNR
出来るか出来ないかで言ったら出来るけど、
あえてgoを選んで茨の道を行く理由もない気が
2018/10/04(木) 21:44:39.36ID:LKSFG/n9
goにChronium突っ込んで一緒にビルドする道がある
2018/10/04(木) 21:46:01.00ID:LKSFG/n9
*Chromium
457デフォルトの名無しさん
垢版 |
2018/10/05(金) 01:00:46.21ID:Z8mNuFSU
fmtってなんて読むの?
2018/10/05(金) 01:11:41.67ID:1DuzhYeR
フムトゥ
2018/10/05(金) 06:15:18.07ID:TJkuE2QF
普通にエフエムティーって読まない?
2018/10/05(金) 07:28:14.40ID:KOPtFpiE
英語圏では、ほぼ>>458
2018/10/05(金) 08:28:44.42ID:Eg7HpelQ
フォーマットと呼んでる
この略称じゃなかったっけ?
2018/10/05(金) 08:42:24.17ID:5/1Sw7bf
>>461
俺もこれと思った
2018/10/05(金) 12:19:17.56ID:KOPtFpiE
もちろんformatのことだし、formatと読んでなんの問題もないけど、
英語で話していると>>458で読む人多いよ
主因はrob pikeがそう発音したからだと思う
Gophercon 2014のキーノート
https://www.youtube.com/watch?v=aRkx_rKgnxo
の15:30あたりから
Mat Ryerという人がGo Programming Blueprint, 1ed, 2edで
このネタを紹介してる
2018/10/05(金) 15:28:00.27ID:v3DBsoPa
フムトゥだとなんか英領東インド会社っぽく感じる
465デフォルトの名無しさん
垢版 |
2018/10/09(火) 23:43:11.15ID:HfhHB2c6
depとvgoって競合するものですか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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