いろいろ備忘録日記

主に .NET とか Go とか Python絡みのメモを公開しています。

golang

Goメモ-158 (base64 エンコードとデコード)

概要 サンプル エンコード デコード 参考資料 概要 たまに base64 でバイナリを送ったりすることがあるので、忘れないうちにここにメモメモ。 サンプル エンコード 普通の文字列をBase64することは個人的にあまり無いので、適当なバイナリファイルとして Uns…

Goメモ-157 (bytes.Bufferはとても便利)

概要 サンプル ゼロ値で利用 文字列からbytes.Bufferを生成 バイト列からbytes.Bufferを生成 io.Readerとして利用 io.Writerとして利用 参考資料 概要 bytes.Buffer 使ってますか? Goではバイト列を扱うことが多いので、この型はとても便利です。 Goを始め…

Goメモ-156 (go test で short モード時にスキップするテストを書く)(-short, t.Skip)

概要 サンプル 普通にテスト実行。 -short オプションを付与して実行。 参考資料 概要 よく忘れるのでここにメモメモ。 go test には、-short というオプションがあります。テストとしては用意しているけど、時間がかかるので、パパっとテストを実行したいと…

Goメモ-155 (StackOverflow Collectives に Go の Collective がオープン)

概要 参考資料 概要 以下、忘れないうちにメモメモ。 昨日(2021-06-23)、stackoverflow が Collectives on StackOverflow というものをローンチしましたね。 stackoverflow.blog このサービスの最初のカスタマーの一つが Go 言語 とのことで、GoのCollecti…

Goメモ-154 (go run したら unsupported VMA range って出た)(Chromebook, ARM64)

概要 こんな感じ CPUの情報 情報を探してみる 対策 参考資料 概要 以下、自分のChromebookの環境で発生しました。忘れないうちにメモメモ。 発生することは、最近のWindowsマシンとかMac使っていると無いと思いますが。。。 こんな感じ $ make run go get -d…

Goメモ-153 (Goでのファイル I/O のやり方まとめ)

概要 ファイル開いて読み込み ファイル開いて読み込み2 ファイル開いて書き込み ファイル開いて書き込み2 追記モード (Append) で開いて書き込み /dev/null のように出力を捨てる Shift-JIS なファイルを読み込み Shift-JISなファイルを書き込み EUC-JP な…

Goメモ-152 (複数の *exec.Cmd をパイプストリームでつないでコマンド実行する)

概要 サンプル 参考資料 概要 よく忘れるのでメモメモ。 少し前に exec.Command について以下をメモしていました。 devlights.hatenablog.com devlights.hatenablog.com devlights.hatenablog.com devlights.hatenablog.com devlights.hatenablog.com (*Cmd)…

Goメモ-151 (mainパッケージの中でビルドタグ使って複数のmain関数を定義)(+build run)

概要 ビルドタグを付ける 参考資料 概要 ちょっとしたTIPSです。 Goでは main パッケージの中に main 関数があればそれがエントリポイントになりますね。 で、当たり前ですが複数のmain関数が定義されているとビルドエラーになります。 でも、go run で実行…

Goメモ-150 (プログラミング言語GoのKindle版が出てた)

概要 参考資料 概要 忘れないうちにメモメモ。Goのバイブル的書籍のプログラミング言語Goの日本語版で、いつの間にか Kindle 版が出ていました。 プログラミング言語Go作者:アラン・ドノバン,ブライアン・カーニハン,柴田芳樹丸善出版Amazon ずっと待ち望ん…

Goメモ-149 (Goでのループの書き方)

概要 基本形 (インデックス付き) 基本形 (foreach) 基本形 (whileループ) 無限ループ 単純に指定回数だけループ (Range Loop) スライス(Slice) をループ マップ (Map) をループ チャネル (Channel) をループ 参考資料 概要 以下、自分用のメモです。 他の言…

WSL2とVSCodeで欲しい環境を好きなだけ作る

概要 WSLにて現在実行しているものを一覧出力 WSLにて特定のイメージをインポートする 作った仮想マシンを停止したい場合 作った仮想マシンを削除したい場合 作った仮想マシンをエクスポートしたい場合 一般ユーザの作成 仮想マシンに特定のユーザでログイン…

Goメモ-148 (embed メモ (埋め込み対象を絞り込み, embed.FSで取得))

概要 サンプル 参考資料 概要 Go 1.16 から追加となった embed パッケージについてのメモ5個目。 前回は以下。 devlights.hatenablog.com devlights.hatenablog.com devlights.hatenablog.com devlights.hatenablog.com embed パッケージのドキュメントは以…

Goメモ-147 (embed メモ (複数ファイル, embed.FSで取得))

概要 サンプル 参考資料 概要 Go 1.16 から追加となった embed パッケージについてのメモ4個目。 前回は以下。 devlights.hatenablog.com devlights.hatenablog.com devlights.hatenablog.com embed パッケージのドキュメントは以下。 golang.org 今回は、…

Goメモ-146 (embed メモ (単独ファイル, embed.FSで取得))

概要 サンプル 参考資料 概要 Go 1.16 から追加となった embed パッケージについてのメモ3個目。 前回は以下。 devlights.hatenablog.com devlights.hatenablog.com embed パッケージのドキュメントは以下。 golang.org 今回は、単独のファイルを埋め込んで…

Goメモ-145 (embed メモ (単独ファイル, バイナリで取得))

概要 サンプル 参考資料 概要 Go 1.16 から追加となった embed パッケージについてのメモ2個目。 前回は以下。 devlights.hatenablog.com embed パッケージのドキュメントは以下。 golang.org 今回は、単独のファイルを埋め込んで、その内容を []byte で取…

Goメモ-144 (embed メモ (単独ファイル, 文字列で取得))

概要 サンプル 参考資料 概要 Go 1.16 から追加となった embed パッケージについてのメモ1個目。 embed パッケージは、ビルドモジュールにファイルを埋め込むことができるようになるパッケージです。 これからは外部ライブラリを利用せずにテンプレートファ…

Goメモ-143 (構造体のメンバ定義順によるメモリのパディングについて)

概要 サンプル 参考資料 概要 小ネタ。基本的にどの言語でも同じ理屈です。C言語やってる人とか通信プログラム書いてる人にはおなじみの話だと思います。 構造体を定義する際、メンバの定義順によっては想定しているよりも大きなサイズでメモリ上に確保され…

Goメモ-142 (exec.Command で パイプストリーム を使ってコマンド実行)

概要 サンプル 参考資料 概要 よく忘れるのでメモメモ。 少し前に exec.Command について以下をメモしていました。 devlights.hatenablog.com devlights.hatenablog.com devlights.hatenablog.com devlights.hatenablog.com (*Cmd)には、StdinPipe, StdoutPi…

Goメモ-141 (exec.Command で Context 付きでコマンド実行)

概要 サンプル 参考資料 概要 よく忘れるのでメモメモ。 少し前に exec.Command について以下をメモしていました。 devlights.hatenablog.com devlights.hatenablog.com devlights.hatenablog.com 上の記事では 、コマンドの実行に exec.Command() を利用し…

Goメモ-140 (exec.Command で標準入力・標準出力・標準エラー出力を全部指定)

概要 サンプル 参考資料 概要 よく忘れるのでメモメモ。 少し前に exec.Command について以下をメモしていました。 devlights.hatenablog.com devlights.hatenablog.com 上の記事では 標準出力と標準エラー出力を (Cmd).Output() や (Cmd).CombinedOutput() …

Goメモ-139 (exec.Command で標準出力と標準エラー出力を両方取得)

概要 サンプル 参考資料 概要 よく忘れるのでメモメモ。 少し前に exec.Command について以下をメモしていました。 devlights.hatenablog.com 上の記事のサンプルでは (*Cmd).Output() を使って標準出力を取得していましたが、標準エラー出力も含めて欲しい…

Goメモ-138 (staticcheck で警告をコメントで抑制する)

概要 試してみる 参考資料 概要 よく忘れるのでメモメモ。 go lint が そのうち deprecated になるという github.com を見てから、staticcheck を利用するようにしているのですが、とても快適です。 staticcheck.io んで、たまにですが staticcheck が出して…

Goメモ-137 (exec.Command で シェルの展開機能 を利用する)

概要 サンプル 参考資料 概要 よく忘れるのでメモメモ。 Go の os/exec パッケージには、コマンドを実行する exec.Command() がありますが、これを使用して cmd = exec.Command("ls", "-l", "*.go") みたいな実行をするとエラーになってしまいます。 シェル…

Goメモ-136 (Exampleテストで非同期結果をテストする)

概要 その関数が非同期処理する関数の場合 参考資料 概要 よく忘れるのでメモメモ。 Goには Example関数名 という形でテスト関数を作ると、ドキュメントに使用例として載ってくれる、かつ、ついでにテストとしても利用できる機能があります。 こんな感じです…

Goメモ-135 (embedパッケージを使ってバージョン情報などを埋め込み)

概要 サンプル それぞれ別々のファイルにしておいて埋め込む 一つのファイルにバージョンとかをまとめておいて埋め込む 概要 前回、ビルド時に -ldflags を使ってパッケージ情報を埋め込むサンプルを記載しました。 devlights.hatenablog.com Go 1.16 から e…

Goメモ-134 (go build 時にバージョン情報などを埋め込み)(ldflags, -X)

概要 git からビルド番号などを取得して go のビルド時に埋め込む サンプル 参考情報 概要 前回、git でビルド番号とかを取得する記事を書いたのでついでに。 devlights.hatenablog.com Go では、ビルド時に -ldflags オプションをつかって、プログラム内の…

Goメモ-133 (PowerShell環境でビルド時にGOOSとGOARCHの指定の仕方)

概要 参考情報 概要 いつも忘れるので、ここにメモ。 PowerShell 環境で、クロスコンパイルしたい場合、以下のように GOOS と GOARCH を指定する。 $ $env:GOOS="linux"; $env:GOARCH="amd64"; go build -o xxx 参考情報 stackoverflow.com docs.microsoft.c…

Goメモ-132 (Go 1.16で追加された signal.NotifyContext())

概要 サンプル signal.Notify 何もせずに5秒経過した場合 5秒以内にCtrl-Cで割り込み入れた場合 signal.NotifyContext 何もせずに5秒経過した場合 5秒以内にCtrl-Cで割り込み入れた場合 参考情報 概要 Go 1.16 のリリース自体については以下の記事を参照くだ…

Goメモ-131 (Go 1.16 リリースで気になったところメモ)

概要 参考情報 概要 Go 1.16 のリリースノート見て、気になったところを自分用にメモメモ。 golang.org Go 1.16 のリリース自体については前回の記事を参照ください。 devlights.hatenablog.com 1.15から6ヶ月後にリリース 言語の変更なし Mac上の64ビット A…

Goメモ-130 (Go 1.16 リリース)

概要 Go 1.16 をダウンロードしてインストール (Linux)(Gitpod) 参考情報 概要 Go 1.16 がリリースされましたね。 今回は、embed パッケージが追加されていたりとちょっと楽しみなリリースです。 以下、リリースに関しての自分用の参考情報です。 blog.golan…