Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。
公式ドキュメント
http://golang.org/doc/
日本語訳
http://golang.jp
※前スレ
Go language part 2
https://mevius.5ch.net/test/read.cgi/tech/1510395926/
Go language part 3
■ このスレッドは過去ログ倉庫に格納されています
2019/10/17(木) 21:38:04.78ID:wMsZ+t6y
2019/10/23(水) 10:08:27.34ID:R2gPUhVc
今頃書き方が気に入らないとか変な奴が増えてきたな
2019/10/23(水) 11:21:24.14ID:QKgYWjME
errorがつらすぎるError()stringだけで表現しきれないよ
2019/10/23(水) 15:38:46.69ID:v5l3MvUt
たまにgoやると、そのたびにテンプレートリテラルがないことを忘れててショックを受ける
48デフォルトの名無しさん
2019/10/23(水) 15:45:39.64ID:JzA6/vMp Go って GAE とか GCP 以外ではどんなところで使われてますか
49デフォルトの名無しさん
2019/10/23(水) 16:11:49.10ID:JxOFlXnS2019/10/23(水) 16:12:12.27ID:WGPw5kiw
LLで書かれていたserver-sideの置き換え
2019/10/23(水) 18:00:58.73ID:GdFoVnvN
>>48
ありがたくGogsを使わせていただいてます
ありがたくGogsを使わせていただいてます
2019/10/23(水) 19:15:53.64ID:S820ViMx
>>48
ありがたくDockerを使わせていただいています。
ありがたくDockerを使わせていただいています。
2019/10/23(水) 19:44:31.14ID:2nox9oBd
>>48
android本体のビルドシステム
android本体のビルドシステム
2019/10/26(土) 14:34:34.62ID:Js8CxMBL
{ "name": "Tanaka", "age": 26 }
{ "name": "Tanaka"}
{ "age": 26 }
{}
みたいに中身が入ってるか不確定なjsonlファイルを上手くcsvやtsvに変換する方法ってありますか?
{ "name": "Tanaka"}
{ "age": 26 }
{}
みたいに中身が入ってるか不確定なjsonlファイルを上手くcsvやtsvに変換する方法ってありますか?
2019/10/26(土) 17:57:54.28ID:cnCbS4wm
普通にjson.Unmarshal()するだけで、mapになるそうだから
入っていないキーは入っていないと分かるのとちがう?
設定ファイルとか使うコード書いたことないから受け売りなんだけど
入っていないキーは入っていないと分かるのとちがう?
設定ファイルとか使うコード書いたことないから受け売りなんだけど
2019/10/26(土) 18:26:00.14ID:WK67sdAG
いまいちカッコ悪いが、
各フィールドをinterface{}で受けて、有無をnil判定するのはどうか
type Person struct {
Name interface{} `json:"name"`
Age interface{} `json:"age"`
}
func encodeField(v interface{}) string {
if v == nil { return "" }; return fmt.Sprint(v)
}
func main() {
var persons []*Person
json.Unmarshal([]byte(`[{"name": "Tanaka", "age": 26},
{"name": "Tanaka"},{"age": 26}, {}]`), &persons)
w := csv.NewWriter(os.Stdout)
for _, person := range persons {
records := []string{encodeField(person.Name),encodeField(person.Age)}
w.Write(records)
}
w.Flush()
}
【出力】
Tanaka,26
Tanaka,
,26
,
各フィールドをinterface{}で受けて、有無をnil判定するのはどうか
type Person struct {
Name interface{} `json:"name"`
Age interface{} `json:"age"`
}
func encodeField(v interface{}) string {
if v == nil { return "" }; return fmt.Sprint(v)
}
func main() {
var persons []*Person
json.Unmarshal([]byte(`[{"name": "Tanaka", "age": 26},
{"name": "Tanaka"},{"age": 26}, {}]`), &persons)
w := csv.NewWriter(os.Stdout)
for _, person := range persons {
records := []string{encodeField(person.Name),encodeField(person.Age)}
w.Write(records)
}
w.Flush()
}
【出力】
Tanaka,26
Tanaka,
,26
,
2019/10/26(土) 18:56:16.09ID:ZMkO6rZZ
5856
2019/10/26(土) 19:00:33.37ID:WK67sdAG2019/10/26(土) 19:17:37.95ID:WK67sdAG
どうぞ
ttps://play.golang.org/p/JD9lfvYmddM
ttps://play.golang.org/p/JD9lfvYmddM
2019/10/26(土) 19:54:24.78ID:b0emESrF
2019/10/26(土) 20:04:05.89ID:7Zdb+SPq
Goってjqみたいな機能無いのか
jsonの全パターン書くの辛くないか?
{ "name": "Tanaka", "age": 26 }
だけで残りの3パターンも補完できれば汎用性のあるものができそうだが
jsonの全パターン書くの辛くないか?
{ "name": "Tanaka", "age": 26 }
だけで残りの3パターンも補完できれば汎用性のあるものができそうだが
2019/10/26(土) 20:26:57.00ID:cnCbS4wm
2019/10/26(土) 20:30:49.25ID:bEV2HGjQ
まあjq使ったほうが遥かに早いわな
2019/10/26(土) 22:55:14.57ID:qV3xsUXN
2019/10/26(土) 23:02:23.77ID:cnCbS4wm
>>64
定義って、それはテストデータじゃない
テストデータ書かないでサンプル書くの?
とかすっとぼけて書いたが、誰かjsonの形式の定義が必要なサンプルコードを書いたりしたか?という話
そもそもが内容が不定なjsonを解読するって話だから、皆さんそれを読むサンプルコードを書いてる
つまり、レス主はそれらのサンプルコードを読んでないんじゃね?
定義って、それはテストデータじゃない
テストデータ書かないでサンプル書くの?
とかすっとぼけて書いたが、誰かjsonの形式の定義が必要なサンプルコードを書いたりしたか?という話
そもそもが内容が不定なjsonを解読するって話だから、皆さんそれを読むサンプルコードを書いてる
つまり、レス主はそれらのサンプルコードを読んでないんじゃね?
2019/10/27(日) 09:49:43.92ID:rf1sTekf
Unmarshal()の引数に[]interface{}の変数のポインタを渡すと、マップとスライスで構成されたjsonの中身がエンコードされるという前提知識で話してるのに
キーをフィールドとして事前定義しなきゃならん、構造体のスライスへのポインタを渡す形式の呼び方での話を持ち出されても困るんだ
んでも、構造体を切ることをパターンと言っているのではない可能性もあって、一応確認
キーをフィールドとして事前定義しなきゃならん、構造体のスライスへのポインタを渡す形式の呼び方での話を持ち出されても困るんだ
んでも、構造体を切ることをパターンと言っているのではない可能性もあって、一応確認
2019/10/27(日) 16:02:57.62ID:rf1sTekf
【質問】
goroutineはデーモンスレッドみたいにプロセスが死ぬと終了します
だから後始末をしたい場合、子にはcontext.WithCancelで終了を通知、受け取ったら後始末
そして、親はsync.WaitGroupで完了待ちしています
んでも、もっとうまい方法ってないものかな?面倒
Javaだとスレッドをinterruptして、子はInterruptExeption拾って後始末して、親はjoinして待つじゃない
主にInterruptExeptionをキャッチするコードを書くだけで済む
もしも親から狙ったgoroutineに特定のpanicを起こせるなら、recoverで拾えるかなーと…
goroutineはデーモンスレッドみたいにプロセスが死ぬと終了します
だから後始末をしたい場合、子にはcontext.WithCancelで終了を通知、受け取ったら後始末
そして、親はsync.WaitGroupで完了待ちしています
んでも、もっとうまい方法ってないものかな?面倒
Javaだとスレッドをinterruptして、子はInterruptExeption拾って後始末して、親はjoinして待つじゃない
主にInterruptExeptionをキャッチするコードを書くだけで済む
もしも親から狙ったgoroutineに特定のpanicを起こせるなら、recoverで拾えるかなーと…
68デフォルトの名無しさん
2019/10/27(日) 17:24:05.16ID:IkTaChA0 暗黙で thread safe になるからじゃね?
2019/11/02(土) 10:54:34.41ID:ZFvN4ynw
Most Popular Programming Languages 1965 - 2019
https://www.youtube.com/watch?v=Og847HVwRSI
https://www.youtube.com/watch?v=Og847HVwRSI
2019/11/09(土) 14:40:29.85ID:LmK44fG0
71デフォルトの名無しさん
2019/11/09(土) 14:45:47.99ID:BZG37V3w おめでとう
そして 10年で 3 スレ
そして 10年で 3 スレ
2019/11/10(日) 16:35:00.71ID:AlAC5EvK
>>67
狙ったgoroutineにってのが推奨されてるかはわからんけど、レシーバなり関数のパラメータなりにid持たせて、終了通知channelにそのidを送って受け取った側で処理する、とか
狙ったgoroutineにってのが推奨されてるかはわからんけど、レシーバなり関数のパラメータなりにid持たせて、終了通知channelにそのidを送って受け取った側で処理する、とか
2019/11/12(火) 18:31:22.40ID:1W50Wecq
継承、関数オーバーライド、多態性を実装したサンプルをまとめてみた
https://play.golang.org/p/4_p8gXLRJ1j
今後のバージョンアップで機能しなくなったりとか、現状でもマズイ部分って、どれくらいだろうか?
https://play.golang.org/p/4_p8gXLRJ1j
今後のバージョンアップで機能しなくなったりとか、現状でもマズイ部分って、どれくらいだろうか?
2019/11/12(火) 19:33:54.99ID:gbKk99TD
オーバーライドしたスーパークラスのメソッドを呼び出す例が無かったんでちょっと変更
https://play.golang.org/p/XUfFldlrkqT
https://play.golang.org/p/XUfFldlrkqT
75デフォルトの名無しさん
2019/11/13(水) 13:05:15.15ID:OceCV+VL ローソンやめて・・・
2019/11/14(木) 12:27:37.91ID:DypnJQvv
2019/11/14(木) 12:45:55.94ID:OUpVBwEJ
>>76
Inheritance.Msg()じゃないの?
Inheritance.Msg()じゃないの?
2019/11/15(金) 01:20:51.87ID:mVgFykxZ
79デフォルトの名無しさん
2019/11/19(火) 11:45:57.48ID:yN0S2651 新しいサイトのurlゴーデブとか俺をバカにしてんのか?
2019/11/19(火) 13:05:47.04ID:l66aOXt6
go.dev
pkg.go.dev
デヴ乙
pkg.go.dev
デヴ乙
2019/11/19(火) 19:24:06.45ID:FmtuL8lJ
新しいサイト?
言語仕様ドキュメントが見つからないから、移行ではないよな?
何のためのサイト何だろうコレ
言語仕様ドキュメントが見つからないから、移行ではないよな?
何のためのサイト何だろうコレ
2019/11/19(火) 19:41:52.54ID:nsf/4FCJ
ごーでぶキュレーションサイトなのかな
https://japan.zdnet.com/article/35145511/
https://japan.zdnet.com/article/35145511/
2019/11/19(火) 19:55:13.02ID:FmtuL8lJ
ああ、つまり経営者向けの広告サイトなんだな
2019/11/19(火) 20:30:05.61ID:j6UXNqhz
> https://blog.golang.org/go.dev
> Today we are launching go.dev, a new hub for Go developers, to help answer those questions.
開発者向けのハブサイトだと
> Today we are launching go.dev, a new hub for Go developers, to help answer those questions.
開発者向けのハブサイトだと
85デフォルトの名無しさん
2019/11/20(水) 04:14:35.39ID:MuZ0V3fT デブで経営者向けはないだろw
経営者ならスマート
経営者ならスマート
2019/11/20(水) 05:50:27.81ID:yYpRsUso
ドメインの管理者は…
2019/11/20(水) 21:31:46.92ID:TfJaRLfE
>>48
Go言語を採用して開発をしている会社一覧
https://web.archive.org/web/20191120013540/https://qiita.com/muchi/items/018c81c27f637797fcf3
Go言語を採用して開発をしている会社一覧
https://web.archive.org/web/20191120013540/https://qiita.com/muchi/items/018c81c27f637797fcf3
2019/11/21(木) 22:11:47.49ID:zCme0Fkr
なぜかVScodeでmain.goだけ"fmt"とか全くimportできなくなってしまった
language serverのリスタートもWindowsの再起動も駄目
なんじゃこりゃ、まいったね
language serverのリスタートもWindowsの再起動も駄目
なんじゃこりゃ、まいったね
2019/11/22(金) 22:15:46.73ID:meXSLknH
2019/11/23(土) 08:06:54.73ID:5HHeTBXj
2019/11/23(土) 12:27:33.32ID:1tA3t0n1
2019/11/23(土) 14:07:25.44ID:5HHeTBXj
2019/11/23(土) 20:04:06.92ID:1tA3t0n1
2019/11/23(土) 20:37:12.05ID:5HHeTBXj
2019/11/23(土) 21:02:17.64ID:zPKhdy+L
環境変数 GO111MODULE を off にセットしてみたら
2019/11/23(土) 21:13:40.13ID:pGKd1Nh3
言語自体はそれなりに良いんだが開発状況見てるとと将来が不安。rubyに似てる。
2019/11/23(土) 21:21:33.69ID:3Nj772W5
2019/11/23(土) 21:44:02.36ID:zPKhdy+L
>>94
go.mod に
replace internal/config => ./internal/config
と書いておくと
import "internal/config"
と書ける。 ./internal/config ディレクトリ内にも go.mod を作っておく必要があるけど
go.mod に
replace internal/config => ./internal/config
と書いておくと
import "internal/config"
と書ける。 ./internal/config ディレクトリ内にも go.mod を作っておく必要があるけど
2019/11/23(土) 21:57:18.51ID:5HHeTBXj
100デフォルトの名無しさん
2019/11/23(土) 22:02:32.31ID:5HHeTBXj >>95
ん、off?空指定とは違う挙動になるのかな?
ん、off?空指定とは違う挙動になるのかな?
101デフォルトの名無しさん
2019/11/23(土) 22:08:43.74ID:5HHeTBXj >>98
internal以下のパッケージの全てにgo.modを入れるのはちょっと…
internal以下のパッケージの全てにgo.modを入れるのはちょっと…
102デフォルトの名無しさん
2019/11/23(土) 22:12:34.14ID:zPKhdy+L >>100
1.13 からデフォルトは on
1.13 からデフォルトは on
103デフォルトの名無しさん
2019/11/23(土) 22:13:50.79ID:5HHeTBXj シンプルなのはいいんだけど
golintでチェックされる命名規則が嫌すぎる
キャメルでgetJsonDataとかだったか関数定義したら"JSON"と大文字で書けとか怒られた
お前は姑か!
golintでチェックされる命名規則が嫌すぎる
キャメルでgetJsonDataとかだったか関数定義したら"JSON"と大文字で書けとか怒られた
お前は姑か!
104デフォルトの名無しさん
2019/11/23(土) 22:19:49.28ID:5HHeTBXj105デフォルトの名無しさん
2019/11/23(土) 22:22:02.56ID:5HHeTBXj106デフォルトの名無しさん
2019/11/23(土) 22:24:43.43ID:zPKhdy+L off にして modules 捨てたらいいんじゃないかな
107デフォルトの名無しさん
2019/11/23(土) 22:29:30.47ID:zPKhdy+L 後は import "hoge-project/internal/config" って書くとか
これなら go.mod を作ったり弄くらなくて済む
これなら go.mod を作ったり弄くらなくて済む
108デフォルトの名無しさん
2019/11/23(土) 22:40:38.71ID:5HHeTBXj109デフォルトの名無しさん
2019/11/25(月) 21:36:43.85ID:aLYZ9MFJ 初心者なんだがcontextの使い道がいまいちわからん。
cancelとかなんかいいサンプルないかな。
cancelとかなんかいいサンプルないかな。
110デフォルトの名無しさん
2019/11/25(月) 22:24:43.09ID:ELiIkdft >>109
パッケージドキュメントのExampleが、自分としては分かりやすかった
WithCancelしか使ってないけど
あと、go vet がバグっていて親contextのCancel関数があるのに
子供のCancel関数を_で捨てると怒られる
https://github.com/golang/go/issues/29587
暫定的な解決法は一旦変数に取ってから_に代入
パッケージドキュメントのExampleが、自分としては分かりやすかった
WithCancelしか使ってないけど
あと、go vet がバグっていて親contextのCancel関数があるのに
子供のCancel関数を_で捨てると怒られる
https://github.com/golang/go/issues/29587
暫定的な解決法は一旦変数に取ってから_に代入
111デフォルトの名無しさん
2019/11/25(月) 22:34:45.60ID:ELiIkdft >>109
使い方じゃなくて使い道かー
んー、goroutineをポコポコ作る場面で、処理をキャンセルしたい事ってあるけど、作り散らしたgoroutineに通知しないとキャンセルできない
そんなとき自前で仕掛けを作らなくてもcontextを使えばいい
あとは、そういった処理にタイムアウトを実装したい時にも、タイマーが組み込まれてるcontextがある
Valueは使ったこと無い
使い方じゃなくて使い道かー
んー、goroutineをポコポコ作る場面で、処理をキャンセルしたい事ってあるけど、作り散らしたgoroutineに通知しないとキャンセルできない
そんなとき自前で仕掛けを作らなくてもcontextを使えばいい
あとは、そういった処理にタイムアウトを実装したい時にも、タイマーが組み込まれてるcontextがある
Valueは使ったこと無い
112デフォルトの名無しさん
2019/11/25(月) 22:57:11.50ID:0VXwuJZP ありがちなのはsigintしたときにすぐにプログラムを止めずに子のゴルーチンの処理が一区切りついてから止める場合とかかな🤔
113デフォルトの名無しさん
2019/11/26(火) 02:26:32.95ID:RC9c8z2p 改訂2版 みんなのGo言語、2019/8/1
買ってきた。
これは、文法以外の開発に関する本
買ってきた。
これは、文法以外の開発に関する本
114デフォルトの名無しさん
2019/11/26(火) 07:37:44.38ID:wNKG8xXd >>112
んだね、自分はちゃんと後始末していることを保証するためにWaitGroupと組み合わせてる
んだね、自分はちゃんと後始末していることを保証するためにWaitGroupと組み合わせてる
115デフォルトの名無しさん
2019/11/26(火) 15:25:52.87ID:+MieSoC5116デフォルトの名無しさん
2019/11/26(火) 15:27:45.16ID:+MieSoC5117デフォルトの名無しさん
2019/11/26(火) 15:32:27.05ID:+MieSoC5 >>110
パッケージドキュメントだと、やはり基本的にループ待受なのね
なんかイメージ的に、その文脈から派生した処理を上手いことその派生分だけ切り上げる、みたいな感じだったけど、contextWithCancel使う=ループ処理がある、なのかな
パッケージドキュメントだと、やはり基本的にループ待受なのね
なんかイメージ的に、その文脈から派生した処理を上手いことその派生分だけ切り上げる、みたいな感じだったけど、contextWithCancel使う=ループ処理がある、なのかな
118デフォルトの名無しさん
2019/11/26(火) 18:34:43.56ID:8XlTLgEr119デフォルトの名無しさん
2019/11/26(火) 20:40:53.47ID:+MieSoC5 >>118
なるほど。参考になる。
channel読むの前提ってことは、やっぱり汚くなるよね。
selectで終了待受したいなら、中でさらにgoroutine生成してselectまで進めておく、しかないと
なんかこう、WithCancelで生成したcontext渡してcancelしたらなにも考えることなく終わってほしいなー。
なるほど。参考になる。
channel読むの前提ってことは、やっぱり汚くなるよね。
selectで終了待受したいなら、中でさらにgoroutine生成してselectまで進めておく、しかないと
なんかこう、WithCancelで生成したcontext渡してcancelしたらなにも考えることなく終わってほしいなー。
120デフォルトの名無しさん
2019/11/26(火) 21:33:38.25ID:+iLBHaU9 >>114
便乗して更に質問で申し訳ないが聞きたい。waitgroupって、個人的にはworkerの数が決まってるなら使うべき?
wg使わずにキャパシティ付きchannelに放り込む、クロージャでdefer closeしてその後channelをrangeで回す。というのもソースコードではよく見る。
ここら辺なにが正解なのかわからんのよね
便乗して更に質問で申し訳ないが聞きたい。waitgroupって、個人的にはworkerの数が決まってるなら使うべき?
wg使わずにキャパシティ付きchannelに放り込む、クロージャでdefer closeしてその後channelをrangeで回す。というのもソースコードではよく見る。
ここら辺なにが正解なのかわからんのよね
121デフォルトの名無しさん
2019/11/26(火) 22:53:16.65ID:wNKG8xXd >>120
workerの数が決まらないほど、使うべきなんじゃない?
要するに全部のgoroutineが終わったかどうか判断する仕組みだから
ちなみに自分はgoroutineを二段構えで呼んでて、WaitGroupは隠してる
https://github.com/XORveRCOM/util/blob/master/pkg/easywork/easywork.go
workerの数が決まらないほど、使うべきなんじゃない?
要するに全部のgoroutineが終わったかどうか判断する仕組みだから
ちなみに自分はgoroutineを二段構えで呼んでて、WaitGroupは隠してる
https://github.com/XORveRCOM/util/blob/master/pkg/easywork/easywork.go
122デフォルトの名無しさん
2019/11/26(火) 22:57:07.00ID:eptCat3v workerの数決まっていないでチャンネル使うとキャパシティ以上にワーカーできたとき詰まって死にそう🤔
123デフォルトの名無しさん
2019/11/26(火) 23:23:09.81ID:Gw3sx8bp >>121
回答とサンプルありがとう。
質問の日本語がおかしかった。。
なるほど、こうすればchannelで送受信しなくても逐次的に処理できるということか。
ちなみにworkerの数が決まらないケースって、どんな場面で遭遇する?
常駐してて死なないアプリ以外にあんまり思いつかず
回答とサンプルありがとう。
質問の日本語がおかしかった。。
なるほど、こうすればchannelで送受信しなくても逐次的に処理できるということか。
ちなみにworkerの数が決まらないケースって、どんな場面で遭遇する?
常駐してて死なないアプリ以外にあんまり思いつかず
124デフォルトの名無しさん
2019/11/26(火) 23:23:41.57ID:wNKG8xXd >>122
WaitGroupのソースを参照
WaitGroupのソースを参照
125デフォルトの名無しさん
2019/11/26(火) 23:29:52.93ID:Gw3sx8bp >>122
受信側は無限に待ち受ける想定だとどうかな?というか、waitgroupを使わないユースケースがそれぐらいしか思いつかないんだよね
waitgroupが有効なケース、だけどwaitgroupを使わないケースってどんなんがあるのかな。
受信側は無限に待ち受ける想定だとどうかな?というか、waitgroupを使わないユースケースがそれぐらいしか思いつかないんだよね
waitgroupが有効なケース、だけどwaitgroupを使わないケースってどんなんがあるのかな。
126デフォルトの名無しさん
2019/11/26(火) 23:36:45.35ID:wNKG8xXd127デフォルトの名無しさん
2019/11/26(火) 23:46:52.62ID:+iLBHaU9 >>126
そうか、パッと見ダウンロード処理を開始する時にwg.Add(len())すれば、とおもったけど、よく考えたら何をダウンロードするのかを取得する処理自体が並列化してる場合は、ソースみたいに自分でAdd(1)しないと並列化できないね。
とても勉強になった。ありがとう。
そうか、パッと見ダウンロード処理を開始する時にwg.Add(len())すれば、とおもったけど、よく考えたら何をダウンロードするのかを取得する処理自体が並列化してる場合は、ソースみたいに自分でAdd(1)しないと並列化できないね。
とても勉強になった。ありがとう。
128デフォルトの名無しさん
2019/11/26(火) 23:59:49.88ID:eptCat3v >>124
WaitGroupのソース見る限りAddされた数と待っている数を保持していてチャンネルを使っていないっぽいけど…
チャンネルを使うと詰まることあるけどWaitGroupならないんじゃないかな
https://golang.org/src/sync/waitgroup.go?s=574:929
WaitGroupのソース見る限りAddされた数と待っている数を保持していてチャンネルを使っていないっぽいけど…
チャンネルを使うと詰まることあるけどWaitGroupならないんじゃないかな
https://golang.org/src/sync/waitgroup.go?s=574:929
129113
2019/12/02(月) 22:40:03.04ID:H5nAExhM >>113
改訂2版 みんなのGo言語、2019/8/1
半分ぐらい読んだけど、これは、文法以外の開発に関する本で、
テスト・デザインパターンなど、
各言語の中級者向け「Effective 何々」に相当する本
改訂2版 みんなのGo言語、2019/8/1
半分ぐらい読んだけど、これは、文法以外の開発に関する本で、
テスト・デザインパターンなど、
各言語の中級者向け「Effective 何々」に相当する本
130デフォルトの名無しさん
2019/12/03(火) 08:47:37.15ID:+IyagjW2 effective goは無料で読めるけど全然似てない。適当こくでねぇ。
131デフォルトの名無しさん
2019/12/05(木) 11:52:28.33ID:a2pVpta0 シマンテックのSEPがgolintを誤検知してさくっと削除
132デフォルトの名無しさん
2019/12/06(金) 09:12:39.72ID:f1K6IxOi 誤検知じゃないかも
133デフォルトの名無しさん
2019/12/08(日) 01:05:14.90ID:XpO05MF4 ジェネリクスとnnbdは入ったの?
134デフォルトの名無しさん
2019/12/12(木) 01:16:12.28ID:8N8BhmJA135デフォルトの名無しさん
2019/12/14(土) 02:29:56.08ID:yWRsmPzk ジェネリックよりインターフェースのメソッド名をリファクタリングする機能が欲しい
それとファイル内に閉じたスコープの新設
それとファイル内に閉じたスコープの新設
136デフォルトの名無しさん
2019/12/14(土) 12:20:22.72ID:txh4qI7o サクッとwebサーバー建てる時お前らエコー使うだろ?
後輩がジン一択言って譲らんのよ
後輩がジン一択言って譲らんのよ
137デフォルトの名無しさん
2019/12/14(土) 12:25:23.49ID:yWRsmPzk ごめんnet/http一択
138デフォルトの名無しさん
2019/12/14(土) 18:57:44.23ID:SoAE2obC サクッと立てたい時にフレームワークは使わない
139デフォルトの名無しさん
2019/12/14(土) 21:25:16.45ID:yWRsmPzk140デフォルトの名無しさん
2019/12/14(土) 21:32:58.33ID:b2AnHSwF >>139
お、イイネ!
お、イイネ!
141デフォルトの名無しさん
2019/12/16(月) 01:49:06.93ID:tdYdVSGI go初心者です。
田中、佐藤、加藤からランダム(重複なし)で3つ抽出するにはどうすればいいでしょうか?
田中、佐藤、加藤からランダム(重複なし)で3つ抽出するにはどうすればいいでしょうか?
142デフォルトの名無しさん
2019/12/16(月) 01:56:43.58ID:oBdKFKCd 取り出す数が配列の大きさと同じならシャッフルすれば良さそう
https://golang.org/pkg/math/rand/#Shuffle
https://golang.org/pkg/math/rand/#Shuffle
143デフォルトの名無しさん
2019/12/16(月) 02:11:32.44ID:tdYdVSGI144デフォルトの名無しさん
2019/12/16(月) 02:29:03.91ID:oBdKFKCd >>143
重複なしならシャッフルして前から5個取れば良さそう
重複なしならシャッフルして前から5個取れば良さそう
145デフォルトの名無しさん
2019/12/16(月) 02:37:03.68ID:tdYdVSGI >>144
すみません、前から5個取るにはどうすればいいのでしょうか?
すみません、前から5個取るにはどうすればいいのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています
