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/
924デフォルトの名無しさん
垢版 |
2019/09/05(木) 18:28:19.82ID:LzIr2bnO
PHPってインストール直後に
勝手にindex.phpが造られて
鯖環境晒されるやつだろ?
セキュリティーホールではIISより最悪
IISとのコンボでもマジ最凶
SQLまで実行出来たωωω
2019/09/05(木) 19:09:04.09ID:iUWkk78x
>>924
XAMPPでもインストールしたのか?w
2019/09/05(木) 19:50:05.22ID:ZhL2R7iO
>>923
技術は認めるけど筋が悪いねえ
2019/09/05(木) 23:41:47.94
1.13
TLS 1.3 enabled by default
Uniform and modernized number literal prefixes
Support for error wrapping
2019/09/05(木) 23:49:45.10ID:VtA7IODN
キタ━━━━(゚∀゚)━━━━!!
2019/09/06(金) 08:58:42.83ID:XmctuCa3
Go言語のコントラクトにより、ジェネリックプログラミングが可能に
https://www.infoq.com/jp/news/2019/09/go-contracts-generic-programming/
2019/09/06(金) 14:30:50.82
コントラクトってHaskellでいうところの
=> の左側に書く奴?
2019/09/06(金) 20:51:25.87ID:8qoaSj9p
これでループ地獄から抜けられるな
2019/09/06(金) 23:25:14.03ID:heCLpUqM
でもgoのcontractのコード、キモいんだよなぁ。
2019/09/06(金) 23:40:30.40ID:cZAYRfte
contract, 早く使いたい
934デフォルトの名無しさん
垢版 |
2019/09/07(土) 00:48:28.14ID:xDQzWQ5M
丸括弧ばっかりでコード読みにくくなりそ
あと、原文のボリュームがすごすぎる
もう少しシンプルにならんもんか
2019/09/07(土) 10:10:08.02ID:Qw407Ch/
他の言語のものとは違うとわかってて名前をかぶせてくるのはほんとやめてほしいわ
2019/09/07(土) 22:13:39.28
Goとコントラクトして魔法コードを書いてよ
2019/09/09(月) 14:51:25.86ID:P6OItk/A
Haskellの型クラスみたいな感じね
この手の言語でちゃんと使えるのは凄いかもしれん
2019/09/11(水) 01:46:16.64ID:PtC76xPP
2019年9月 プログラム言語ランキング
http://pypl.github.io/PYPL.html
2019/09/13(金) 11:50:35.54ID:ydgQnelP
encoding/xmlのDecoderでhtmlを分解できるみたいだけど
htmlでは許容されてxmlで禁止されてる文字が含まれてるとエラーになって分解失敗する

https://golang.org/pkg/encoding/xml/#Decoder

https://en.wikipedia.org/wiki/Valid_characters_in_XML
2019/09/15(日) 00:14:40.58ID:WSLNNCzG
WEBサーバー用に勉強したけど、デフォルトではORMもクッキーの暗号化もフォームの秘密鍵もないのかよ。
これでフレームワーク使わないのが主流って、セキュリティ穴だらけのサイトが乱立しそう。
セキュリティ対策はできてるつもりになってて、実は全然できてない奴が多いからなー
2019/09/15(日) 00:20:20.95ID:WSLNNCzG
でもhttpサーバーなしでwebサイトを公開できるのは感動だったな
ありゃ楽だわ
2019/09/15(日) 21:38:00.09ID:QYKOfs4D
むしろデフォルトで「ORMもクッキーの暗号化もフォームの秘密鍵」もある言語ってなに?
Java EE を「デフォルト」だと言い張れるなら、Java がそうかな?

> でもhttpサーバーなしでwebサイトを公開できるのは感動だったな

これも何を言ってるのかさっぱり分からない。Go のどこにそういう種類の感動があるのやら。
なんか根本的に勘違いしているというか、正しい技術的理解ができてないんでは…。
「できてるつもりになってて、実は全然できてない」のはまずいですよ!
2019/09/15(日) 22:05:44.38ID:OSdJ/aAv
実用性は無視してhttpサーバーなしでwebサイトを公開できるだろ…
2019/09/15(日) 22:08:03.62ID:OSdJ/aAv
Goは単純なマイクロサービスみたいのを簡単に提供できるのが魅力
2019/09/15(日) 22:50:36.52ID:E1rfcuGI
> でもhttpサーバーなしでwebサイトを公開できるのは感動だったな

普通はそのまま本番公開なんてしないぞ
本番ではリバースプロキシのバックエンドとして使うんだよ
2019/09/16(月) 00:15:10.92ID:tGcCl8+o
>>945
その理由を華麗に説明してみないかw
2019/09/16(月) 00:21:03.65ID:tGcCl8+o
一応書くけどリバースプロキシ自体はhttpサーバじゃないよ
webサーバがその機能を持ってることもあるけどね

この場合だとリバースプロキシのバックエンドと書いてるそのものが一応webサーバかな

じゃあ張り切ってリバースプロキシを使う理由をどうぞ!
2019/09/16(月) 09:06:58.35ID:dTSbudTn
「httpサーバーなしで」というと"net/http"も使わないように思うがどういうことなんだろう?
逆に、それを使う前提ならpythonやC#でも同じようにできるしな。
2019/09/16(月) 11:18:39.85ID:39NV8Zh7
Laravel使ってるあたまペチパーが紛れ込んだみたいなレス
2019/09/16(月) 11:59:16.02ID:bkIznKDm
本番環境でのデプロイをやったことのない奴にはgoの楽さがわからないんだろうな
2019/09/16(月) 17:30:12.35ID:1T7dcyJv
初学者だけど$GOPATH/src以下にgetしてきたソースも自分のソースも何もかも味噌も糞も一緒に入れなきゃなんないのが…そのなんだ
その法則を乱そうと足掻いたけど泥沼。面倒すぎる!
諦めて素直にGOPATHにプロジェクト移すかなーと日和かけてる

GOPATHってMavenリポジトリみたいなもんかと思ってた時期が懐かしい
952デフォルトの名無しさん
垢版 |
2019/09/16(月) 17:40:02.91ID:OCMqZYFH
泥沼というより池沼
2019/09/16(月) 17:56:13.43ID:1T7dcyJv
外から来るものと、内から行くものを分離して管理したいと考えるのは、池沼と呼ばれるほどの馬鹿な考えなのか?
2019/09/16(月) 18:04:06.82ID:Zn9wpmWA
Go Modules 使わへんの?
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ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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