【GO】乱数生成法の確認

golangで乱数を扱うならmath/randパッケージがありますが、そのまま使っていいものかわからなかったので色々見て確認してみます。

 

ソース:math/rand/rng.go

Wikipedia:線形合同法Lagged Fibonacci 法メルセンヌ・ツイスタ

続きを読む 【GO】乱数生成法の確認

【GO】プロット出力

golangで数値から表や図などのグラフをプロットしたい。

awesome-goにあったライブラリを使ってみます。

 

  • vdobler/chart:2次元のチャート(グラフ)を出力する。★580
  • gonum/plot:プロットライブラリ。★1203

続きを読む 【GO】プロット出力

【GO】DiscordのWebhookで通知ボットを作る

ディスコード上で動くボットを作ろうとすると少しハードルがあります。

ウェブフックは他サービスでイベントが起きた時の通知を受け取るような用途が主ですが、自分でリクエストを投げることもできるので通知ボットを作成可能です。

Golangを使って適当なメッセージを投げてみます。

続きを読む 【GO】DiscordのWebhookで通知ボットを作る

【GO】Channelsを理解する

Golangを使っているといつの間にか使っているチャンネル。

なんとなくで使っていたので1から自分で書くと色々つまずいた。

動作確認をしながら理解を深めてみます。

ツアー:tour.golang.org/concurrency

ソース:runtime/chan.go

続きを読む 【GO】Channelsを理解する

REST API or WebSocket

ウェブサービスを作る際、コンテンツをすべて含んだHTMLを返すと反応が遅くなったり、定期的に一部を更新する場合に非同期で更新を行うことを考えます。

  • HTTP(S)で情報を送信・取得する、いわゆるREST APIを使う
  • WebSocketを使って双方向のやり取りを確立する

どちらにしようかなと思ったので特徴を見て比べてみます。

続きを読む REST API or WebSocket

【GO】スライスについて深く考える

なんとなく配列代わりに使ったりするスライス。

ちょっと深堀りしてどんなものか考えてみます。

ちゃんと理解すれば中身が変わったり変わらなかったりで混乱することはないはず。

続きを読む 【GO】スライスについて深く考える

使用中となって操作できないファイルの原因探求

golangで適当なパッケージを作っていて、パッケージをリネームしようとしたらよくあるエラーが発生しました。

「別のプログラムがこのフォルダーまたはファイルを開いているので、操作を完了できません。」

最悪OS再起動でどうにかなりますが頻発すると面倒なので原因を見つける方法を書いておきます。

環境、バージョン情報は以下です。

windows10 go 1.12 Visual Stadio Code 1.36.1 Go for Visual Studio Code 0.11.4

続きを読む 使用中となって操作できないファイルの原因探求

【GO】組み込み関数について(new, make, delete等々)

newmakeを使って変数宣言したりappendを使ってスライスの追加なんかを自然とやってきたけど、ふとこれは何だっけと思って調べてみました。

するとビルトインパッケージとして参照することができた。

ソースを見た感じgodoc用に見えるので中身は説明を読んで使ってみる必要がある。

この辺は知らないと使えないものなのでおさらいしておきます。

続きを読む 【GO】組み込み関数について(new, make, delete等々)