Go language part 1

レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
垢版 |
2013/10/10(木) 12:04:51.78
Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。
878デフォルトの名無しさん
垢版 |
2017/07/11(火) 21:07:45.10ID:aZj0SKJK
>>877
言語化するときに頭が整理されるからな
2017/07/14(金) 02:04:24.52ID:I4VxJiDM
>>877
ラバーダックデバッギングってやつ
2017/07/14(金) 07:48:54.82ID:AYnLv9ir
>>879
>ラバーダックデバッギング
テディベアだと思ってたわ
2017/07/17(月) 02:12:19.59ID:7ihWSUZ7
Google、プログラミング言語「Go 2」開発計画発表
http://news.mynavi.jp/news/2017/07/16/064/
2017/07/17(月) 10:09:53.66ID:Fx97i6Ko
Goスレはpart1も終わっていないというのに
2017/07/17(月) 11:06:33.47ID:fxU6unKK
すばらしい洞察
わろた
884デフォルトの名無しさん
垢版 |
2017/07/17(月) 11:07:35.85ID:MkiOtZ1h
goスレは実質part3くらいだよ
2017/07/17(月) 11:41:04.01ID:XK2ZW0di
Go 2になったらGopherくんも何か変わる?
2017/07/17(月) 12:51:50.93ID:HJdOjxBV
ついにジェネリクスがつく時が来たか。
2017/07/17(月) 15:27:30.94ID:DkQimeru
ジェネリクスと nil 安全性が実装されたら kuso 言語でないと認める
2017/07/17(月) 17:43:48.37ID:hXjse7Lp
C++ か Java でも使ってればいいんじゃないかな
889デフォルトの名無しさん
垢版 |
2017/07/17(月) 19:23:15.17ID:stj3YUiZ
今日Goインストールしました、
ビルドしてexeファイル作るのまではできたけど、
Goで取ってきたデータを、
表示する、アプリみたいなのを作るにはどうすればいいの?
ほかの人のPCでアプリを実行できるようにしたいです。
2017/07/17(月) 20:01:14.42ID:pfmhHyiC
>>889
1バイナリのみで渡したいなら素材も埋め込む
埋め込み用のライブラリを使うのが普通
891デフォルトの名無しさん
垢版 |
2017/07/17(月) 20:40:18.36ID:stj3YUiZ
>>890
すみません、
初心者なので意味が分からないです、
でも、ありがとうございます。
2017/07/17(月) 20:44:48.16ID:HJdOjxBV
対話がチグハグすぎる。

質問者はwebから情報を取得して表示するアプリを作りたいと言っておる。

GUIアプリを作りたいと言っているんだろうか?
それとも、、、なんだろ?
893デフォルトの名無しさん
垢版 |
2017/07/17(月) 20:50:45.38ID:stj3YUiZ
>>892
そうですそれです、
webから取得したデータを、
表示するGUIアプリを作って、
他の人のPCでも、簡単に実行できるようにしたいです、
今は、取得したデータを、
コマンドプロンプトに表示させるのしかできません。。。
2017/07/17(月) 21:03:19.67ID:HJdOjxBV
>>893
それはあんまりgoの得意な分野ではないかなー。
やったことはないけど
http://qiita.com/intelf___/items/2207c02c306a495d99e6
とかかね。
895デフォルトの名無しさん
垢版 |
2017/07/17(月) 21:06:12.58ID:stj3YUiZ
>>894
詳しい人でもあまりやったことないんですね、
アプリ作るの想定してない言語なのかな、
情報ありがとうございます、
そこ読んで勉強してみます。
2017/07/17(月) 21:11:10.65ID:HJdOjxBV
>>895
Goをやってる人って複数言語をたしなんでいるとこが多いから
GUIが得意な言語を使うと思う。
GoでわざわざGUIをやりたいというのは変態くらいだと思うよ。今のところ。
webアプリとかならありえるし
どういうアプリか知らんけどwebサーバとして動作させて
ブラウザで結果表示するとかが、まぁGoアプリとしてありえる範囲かと。
2017/07/17(月) 21:38:02.29ID:pfmhHyiC
GUIアプリのことだったのか、それは失礼
他の人が回答してるようにGoの得意分野じゃないから止めた方が良いね
898デフォルトの名無しさん
垢版 |
2017/07/17(月) 23:43:30.10ID:qHGcXNCc
そういう用途ならWebアプリが一番無難だよね。つまりJavaScriptかAltJSの言語
899デフォルトの名無しさん
垢版 |
2017/07/18(火) 00:42:33.52ID:L9UQruVY
>>887
すごく同意
2017/07/18(火) 17:19:23.70ID:ltlpiHrO
null安全は今から入れると互換性保てないからな
最初から入れなかったGoogleは馬鹿
2017/07/18(火) 18:56:12.92ID:Z6ozUYhv
今さら、だな
2017/07/18(火) 20:20:35.08ID:6/aX4y+Q
typescriptは後入れできてるけどな。
2017/07/18(火) 21:22:05.30ID:UMkIx05v
>>902
ライブラリは対応してなかったりで面倒だぞ
2017/07/20(木) 16:06:01.17ID:TTDKN4T0
The Go Blog Toward Go 2
ttps://blog.golang.org/toward-go2

ようやくこれを読んだけど面白いこと発表したわけじゃないのな
何にも決まってないけどGo 2リリースに向けて手伝って!とか言ってるから信者は助けてあげればいいんじゃないかなぁ
問題提起だけでも助かるって言ってるからnull安全だのジェネリクスがないからダメって言ったら聞いてくれるはずだよ
2017/07/20(木) 16:14:08.52ID:hN2WxidD
そうそう、ダメダメなんて抽象的なこと言ってても放置されるだけだってね
具体的な体験レポートを提出して説得しろってさ頑張れよ
2017/07/20(木) 21:02:59.35ID:9ngnJ+y5
goってcode generete推奨って感じだけど
generete自体はtemplate文字列とか使ってて
ライブラリ開発者は辛い思いしてるよね。
(xoのテンプレートいじるの辛い)

だから時期パージョンではAST出力とASTからbin生成をサポートして欲しいな。
そうするとaltGoみたいのが作り安くなって言語ごとカスタマイズ出来るようになるし
2017/07/23(日) 02:23:00.81ID:22lpzJ7z
ジェネリクスの追加で、みんなハッピーになるのかな
仕様の変更や削減はいいけど、追加を最小限にとどめられるかが勝負だね

あと2進数リテラルは、重要だと思うんだけど、そんなことないの?
8進より、よほど役に立つと思うんだけど、8進リテラルって何か特種用途があるの?

ってか8進数なんて切り捨てて、アンダーバー付きの2進リテラルを追加した方が良かったと思うんだ
8進数なんて、誰が求めているのかよく分からないし、せめて0oにしてくれた方が・・・
こういうのを排除するのが、この言語の正しい姿勢だと思うんだけどね
908デフォルトの名無しさん
垢版 |
2017/07/23(日) 16:17:42.71ID:knasDU4O
>>907
けっこう賛成
2017/07/26(水) 10:18:59.22ID:ENBFGRGX
>>907
合議制になるんだから提案してみたらいいんじゃない。
おれとしても賛成だよ。
個人的にはelixirのパターンマッチングでバイナリにもマッチングできる仕組みに感動して、
goでバイナリ操作したいならelixirみたいなパターンマッチング欲しいって思った。
ジェネリクスはほしいけどrustでいいかなって気もしてる。
2017/07/28(金) 16:54:15.48ID:9dM+xDfx
>>907
3bit区切りのデータを表現する時とかに判りやすい
2017/07/29(土) 13:11:38.29ID:7d+TUsbq
8進数……昔PC-88のCMD PAL文で使ったぐらいだな。
2017/08/05(土) 12:25:03.33ID:ggnuHEiJ
ジェネリクスじゃなくていいから
interfaceの結合型が簡単に作れるようにして欲しい

func Xxxx(readWriter io.Reader & io.Writer)
func Xxxx(readerOrWriter io.Reader | io.Writer)

とりあえずinterface{} が 関数のパラメータになってるの辛すぎだからそこを解消して欲しいわ
913sage
垢版 |
2017/08/07(月) 01:18:22.11ID:ncmD/ymY
ちょっと触ってみた

一撃でランタイムなくても動くバイナリができたときはびっくりした
2017/08/08(火) 19:23:17.89ID:ljoKaOtb
おめ
2017/08/09(水) 13:45:53.99ID:tJ5llPZ8
そのバイナリだけでサーバーが起動するのも感動する
2017/08/17(木) 01:04:47.91ID:5a8n6tS4
Go2ではコレクション操作の機能をもっと豊富に用意してほしい
forループ文だらけになるわ
917デフォルトの名無しさん
垢版 |
2017/08/17(木) 01:23:28.75ID:lKqFMmqx
本当これ
mapとfilterよこせや
2017/08/17(木) 08:19:52.91ID:7NUjepJC
\ ループだらけフォォォーーーーッ! /
2017/08/17(木) 09:19:08.10ID:wX4L2Jep
>>917
これデファクトスタンダードなライブラリってないのかな
2017/08/17(木) 09:24:39.67ID:vK4PZ24H
Ruby でも使ってればいいんじゃない
2017/08/17(木) 09:43:34.47ID:EtIXwQlG
なぜRustとかでなくRubyなのか
922デフォルトの名無しさん
垢版 |
2017/08/17(木) 09:46:20.42ID:lKqFMmqx
>>919
ジェネリクスがないから型安全じゃなくなる
2017/08/17(木) 10:57:10.38ID:wX4L2Jep
>>922
くそ。やはりジェネリクスか。
goのエコシステムは好きだからrubyとかrustを使う気はないんだよなぁ。
generete使って実装追加するようなのならあるかな?
2017/08/17(木) 11:47:09.52ID:lJ+MJ24Q
ジェネリクス追加せずとも型推論強化でなんとかかんとか
925デフォルトの名無しさん
垢版 |
2017/08/17(木) 23:51:48.55ID:JDyXRi5Q
golangで2chに書き込めない
クッキーの設定エラーが出る。ヘッダに入れてるんだけどな
あとレスポンスのsjis to utf8は出来たけどリクエストをutf8 to sjisする方法が分からない
926デフォルトの名無しさん
垢版 |
2017/08/18(金) 00:03:21.95ID:c33/jNGO
いきなりgolangで書き込むんじゃなくて
主導の対話通信(telnetあたり)で2chへ書き込んで通信の内容でも確認してみたらよいんでない?
927デフォルトの名無しさん
垢版 |
2017/08/18(金) 00:05:54.58ID:c33/jNGO
go - Goで[]byteをshift-jisの文字列に変換する - スタック・オーバーフロー
https://ja.stackoverflow.com/questions/6120/go%e3%81%a7byte%e3%82%92shift-jis%e3%81%ae%e6%96%87%e5%ad%97%e5%88%97%e3%81%ab%e5%a4%89%e6%8f%9b%e3%81%99%e3%82%8b
928デフォルトの名無しさん
垢版 |
2017/08/18(金) 00:07:29.39ID:c33/jNGO
Go言語で文字コード変換 - Qiita
http://qiita.com/uchiko/items/1810ddacd23fd4d3c934

Golang による文字エンコーディング変換 - Qiita
http://qiita.com/spiegel-im-spiegel/items/2e475b48226330aa5570
929デフォルトの名無しさん
垢版 |
2017/08/18(金) 00:17:02.43ID:bO8OoBBY
Set-Cookieが複数あったのが原因だった
すまん
930デフォルトの名無しさん
垢版 |
2017/08/18(金) 00:44:00.14ID:bO8OoBBY
あ、書き込みは出来るけど文字化けするのか

>>926
node.jsでしかしたことなかった

>>927
>>928
http.NewRequest("POST", "https://";+params.server+".2ch.net/test/bbs.cgi?guid=ON", transform.NewReader(strings.NewReader(values.Encode()), japanese.ShiftJIS.NewEncoder()))
ってしてみたけど文字化けして書けない
931デフォルトの名無しさん
垢版 |
2017/08/18(金) 01:33:09.70ID:bO8OoBBY
values.Encode()の時点でURLエンコーディング(UTF8)されるからそれをSJISにしても意味ないのか
やっと原因分かった
932デフォルトの名無しさん
垢版 |
2017/08/18(金) 01:45:45.20ID:bO8OoBBY
SJISのURLエンコードを出来るライブラリが見つからないのですが、何かないですか?
2017/08/18(金) 04:24:15.42ID:Wk6Gpf/O
strings.NewReader(values.Encode())

これ何やってんのさ
2017/08/18(金) 05:00:28.28ID:Wk6Gpf/O
こんなんで通らんの?
https://play.golang.org/p/WIuVrc6hL5
2017/08/18(金) 05:03:09.61ID:Wk6Gpf/O
>>934
あ、間違えた、URLエンコードじゃねえ
2017/08/18(金) 05:16:20.81ID:Wk6Gpf/O
>>935
こうだな
https://play.golang.org/p/haVEWGKoc1
2017/08/18(金) 06:41:42.32ID:mSCO2cNh
頑なにgoにgenericsはいらないって主張してた人たちの立場はどうなってるの?
2017/08/18(金) 09:03:43.27ID:+X0+m8dy
>>937
あれは要らないって言ってるわけじゃなくて無くても筋力で頑張るって言ってる
2017/08/18(金) 11:29:59.19ID:vRHq3miw
別に立場変わらずgoにgenericsはいらないって主張してるでしょ

genericsが必要だって主張してる人たちが
Go2ならgenericsを採用してくれる機会があるはず!って盛り上がってる(?)だけで
ついでに例外とAssertも盛り上がってくれねぇかな
2017/08/18(金) 11:33:40.78ID:+X0+m8dy
個人的にはinterface{}型が関数パラメータに多用されてしまう状況を改善してくれるだけでいい。
例外は別に無くてもいいかな。
2017/08/18(金) 12:04:12.59ID:eIpnBeVf
2ちゃんもutf-8化はよ
942デフォルトの名無しさん
垢版 |
2017/08/18(金) 12:09:30.77ID:bO8OoBBY
url.Valuesに突っ込むキーと値をsjis化したら文字化けせずにpost出来た

>>941
itestAPIならutf8だけどそれ以外面倒だよな
2017/08/18(金) 18:47:51.91ID:rPePw4sf
Goで2chって↓のスレの関係の人?

http://jbbs.shitaraba.net/bbs/read.cgi/computer/44607/1489736608/
944デフォルトの名無しさん
垢版 |
2017/08/18(金) 19:03:33.52ID:PB7aU8rD
>>943
違うよ
そのスレ初めて見た
2017/08/25(金) 10:47:42.16ID:+IyaXioz
Go 1.9 is released
https://blog.golang.org/go1.9
946デフォルトの名無しさん
垢版 |
2017/08/25(金) 16:47:51.80ID:a5MHugSq
ついに1.9!
もう少しで2.0やん
2017/08/25(金) 18:58:27.43ID:eQ9TUNW0
次は1.10でしょ
948デフォルトの名無しさん
垢版 |
2017/08/25(金) 19:08:15.57ID:a5MHugSq
あ、そっか
2017/08/25(金) 21:04:31.34ID:wqoYH6g/
1.20 = 2.0 になるって言ってんだろ
まだ先はなげーよな
2017/08/26(土) 00:46:54.39ID:8IY83KqL
某言語では、0.100とかいうことになってたね…
951デフォルトの名無しさん
垢版 |
2017/08/26(土) 01:02:11.77ID:UaCnfxPk
>>950
何その言語
2017/08/26(土) 09:39:10.71ID:zUqg3XaP
言語じゃなくwineじゃないの?
2017/08/26(土) 10:09:59.64ID:8IY83KqL
D言語です、D言語
2017/08/26(土) 10:36:59.91ID:XF+FkSFR
golangを基礎から学ぶためにrubyのhttps://docs.ruby-lang.org/ja/2.4.0/doc/index.htmlに載ってる言語仕様みたいなのをgolangのドキュメントで探してるんですけど
どこをみたらいいですか?
955デフォルトの名無しさん
垢版 |
2017/08/26(土) 10:49:06.08ID:gyHjYOL6
Documentation - The Go Programming Language
https://golang.org/doc/
2017/08/26(土) 13:10:28.24ID:1Xp/S2sl
日本語訳
公式・非公式は、わからないけど

http://golang.jp/

http://golang-jp.org/doc/
2017/08/26(土) 19:58:41.27ID:7lTOqKMJ
>>956
golang.jpは古いしメンテされてなくて放置されてるので見ないように
2017/08/27(日) 08:21:25.17ID:gv0iyIef
今更だけどGoglandアプデしたらmainパッケージ内で複数ファイルのビルドができるようになてた

言語専用のIDEがあるって理由で使ってる人はあんまりいないか
俺の開発の8割はIDEに支えられている…
2017/08/27(日) 11:36:53.98ID:Fy+qgg0G
GOPATH=~/goって設定してるんですけど
depを使うようになったのでGOPATH=~/foo:~/goな風に設定したんですよ
これでdep ensureすると自動的に~/foo/以下の適当な場所に人様のパッケージがインストールされるんですが
binコマンドが生成されないんです
depを使わずgo getでインストールするとbinコマンドが生成されるんですがdep使ってインストールしたらbinコマンドが生成されないんでしょうか?
例えばhttps://github.com/spf13/cobra
960デフォルトの名無しさん
垢版 |
2017/08/28(月) 00:07:23.17ID:d332SnKK
https://github.com/golang/dep/wiki/Roadmap
https://github.com/golang/dep/issues
https://github.com/golang/dep/issues?q=is%3Aissue+is%3Aclosed
2017/08/28(月) 05:58:13.56ID:4ejthJEF
>>956-957
改訂2版 基礎からわかる Go言語、古川昇(エイベル)、2015

golang.jp は、古川氏とエイベルの社員達が、翻訳していたらしいけど、
最近は、翻訳していないのか

Go Tour 日本語訳
https://go-tour-jp.appspot.com/welcome/1
2017/09/12(火) 00:58:09.78ID:hQHe5647
誰が書いてもまどろっこしいコードになるのがGoの最大の強み
2017/09/13(水) 23:59:51.38ID:NpFfvGPs
>>362
逆でしょ。
2017/09/14(木) 00:08:12.58ID:6Rx4F0Vi
goto 推奨?
2017/09/24(日) 03:36:18.82ID:I7KEdc5J
日本のおっさん共のgoコミュニティー気持ち悪いなぁ
2017/09/24(日) 05:52:40.41ID:Kg+0Au0P
友達探しにコミュニティに参加するつもりでいて
気持ち悪いと思うのなら参加しなければ良い

技術的な事をもっと深く知りたくて
コミュニティに参加したいと思ってるなら
人見てコミュニティ選んでるコミュ障のお前の方が気持ち悪い
2017/09/24(日) 16:08:08.18ID:ZXx1BO+p
朝鮮のおっさん共だと気持ち悪く無いって意味じゃない?、同胞の精神だね
2017/09/24(日) 19:43:27.73ID:W4+6Kt87
言語マニアが出した批判記事にクソヘボいコードが載ってて笑った
2017/09/24(日) 23:14:09.61ID:7raCX1cz
こんなとこで場外乱闘か
2017/09/28(木) 12:31:06.65ID:h8WKWHlz
type fSlice []float64
var pool = sync.Pool{
  New: func() interface{} {
    return make(fSlice, 0, 100)
  },
}
go func(){
  n := pool.Get().(fSlice)
  ...
  pool.Put(n)
}()
20回に1回くらい
panic: interface conversion: interface {} is *main.fSlice, not main.fSlice
pool.Get().(*fSlice)なんてすると
panic: interface conversion: interface {} is main.fSlice, not *main.fSlice
で仕方なく
n,ok := pool.Get().(fSlice)
if !ok {...}した時に気づいたのだけど、Falseでも下の処理には影響しない
Falseだと100回のappendで何故かCapが128になる(Trueだと100)
この謎分かる?
2017/09/28(木) 13:36:21.42ID:h8WKWHlz
原因分かりました
pool.Put(n)の所、端折って書きましたが、実際はresetメソッド作ってそっちで(*n)[:0]してましたが
func(f *fSlice)reset(){
  *f= (*f)[:0]
  pool.Put(f) → pool.Put(*f)にすべきでした
}
サーセン
2017/11/11(土) 00:39:24.57ID:LLMRc4SD
質問です。
先日始めたばかりでデリファレンスの仕方が分からなくて困ってます。
超初歩的ですが教えてください。

コードは以下と同類です。
http://go-database-sql.org/varcols.html

これの dest:= の部分を

th := []interface{}{ new(int), new(string), new(string)}

にして読み込んだところ、
確かにポインタのスライスになっているようなのですが、デリファレンス出来ません。
(単に書き方が分からないだけですが)
試した結果は以下です。

fmt.Println(*th[0], " ", *th[1], " ", *th[2]) // invalid indirect of th[0] (type interface {})
fmt.Println(*(th[0]), " ", *(th[1]), " ", *(th[2])) // invalid indirect of th[0] (type interface {})
fmt.Println(th[0], " ", th[1], " ", th[2]) // 0x11f09b08 0x11ea1468 0x11ea1470
fmt.Println(th) // [0x11f09b08 0x11ea1468 0x11ea1470]

よろしくお願いします。
sqlx使ってもいいのですが、そもそもデリファレンス出来ないのがよく分かりません。
2017/11/11(土) 07:08:21.29ID:qi+awpQj
>>972
Goにとっては、要素がポインタではなくてただの interface{} に見えている。
なのでデリファレンスできないというエラーになる。

方法としてあるのは、th := []*interface{}{...} にする方法。
ポインタの配列と宣言しているので、要素のデリファレンスが可能。

もしくは、要素ごとに、デリファレンスする前に、*intとかに型アサーション(ググって)をする。
その後でデリファレンスする。
2017/11/11(土) 09:52:19.27ID:LLMRc4SD
>>973
最終的にはいけました。ありがとうございました。

> th := []*interface{}{...} にする方法

th := []*interface{}{new (int32), new(string), new(string)}
// cannot use new(int32) (type *int32) as type *interface {} in array or slice literal: *interface {} is pointer to interface, not interface
// cannot use th (type []*interface {}) as type []interface {} in argument to rows.Scan

これは駄目でした。new (int32)がポインタ配列に何故か入れられないという謎仕様?
全ての型はemptyインタフェース interface{} を実装しているのに、
全てのポインタ型はemptyインタフェースへのポインタを実装してない?
(rows.Scanでは受けられないというのはこちらの話ですが)
まあ今の段階ではよく分かりません。

> 要素ごとに、デリファレンスする前に、*intとかに型アサーション

fmt.Println(*(th[0].(*int32)), " ", *(th[1].(*string)), " ", *(th[2].(*string)))

こちらはいけたのですが、しかしこれではなあと。個別べた書きでは意味無いんですよね。
本当は構造体で受けたいのですが、sqlxしかないのかなあと。
(sqlxは内部で使用しているであろうリフレクションが遅そうでいや)

Goはリフレクションが遅くないとかいう落ちってあります?
リフレクション用のタグを別装備しているし、静的にリフレクションしてたりします?
というか動的言語(PHP/JavaScript)からの移植がこんな初歩的なところで躓くのは想定外でした。
動的言語前提の構造になっているとかなり辛いですね。
json周りでも同様のことが想定されますし、そのための型スイッチってのも何だかなあ、という気がします。
愚痴になってしまってすいません。
2017/11/11(土) 11:11:10.62ID:rrUNs59d
new している意味がよく分からないけど、予め変数を割り当ててしまえば良いような?

rows, err := db.Query("select id, first_name, last_name from users")
:
var (
id int
firstName, lastName string
)
rows.Next()
err = rows.Scan(&id, &firstName, &lastName)
:
2017/11/11(土) 13:21:37.63ID:Zhof0cH3
>>975
それだとDBのレコード個別にコードが必要になる。
だから当然困るし、当然同じように困っている人も居て、ググると出てくる。
https://stackoverflow.com/questions/17840963/create-a-map-in-golang-from-database-rows
それでsqlxなのだが、見る限りこれ裸のGoでも出来るのではないかと思って試していたわけ。

newしている意味はない、というか見ての通り今は文法もあやしいので、
動くコードを探してそこからスタートしてる。

ただそもそもsqlでレコードをいちいち走査することもないから、やりたいのはまさにsqlxのこれで、

> pp := []Place{}
> err = db.Select(&pp, "SELECT * FROM place WHERE telcode > ?", 50)
> http://jmoiron.github.io/sqlx/ より抜粋

何故これが標準でないのかがよく分からない。
(ついでに言えば三項演算子がないのも変だと思うが。)

とはいえ、自前でsqlxバリの環境を整えるなら結局リフレクションしか(多分)なく、
これが静的言語の限界というか当然で、それならsqlxを使った方が多分マシ。
楽して速い言語かと期待していたが、正直プログラミングレベルはCと大して変わらないし、
1970年代で止まっている言語と揶揄されるのも分かる。
C+GC+型システムと考えた方がいいのかなこれは。
2017/11/11(土) 13:33:59.14ID:proXGFSN
phpと同じ感覚でgoでdatabase使おうとすると死ぬよね。
結局go側とsql側のスキーマ二重管理になるから、そのままphpと同じノリで使えない。動的言語と静的言語の差だね。

じゃあどうするかというとsql側のスキーマからgoの構造体をコード生成する。
xo とか使う。

http://tdoc.info/blog/2016/07/06/xo.html
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。