いろいろ備忘録日記

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

golang

Goメモ-123 (selectでのチャネル選択の有効無効を切り替える)

概要 サンプル チャネルを nil にして無効にするサンプル nilなチャネルをnon-nilにして出力を切り替えていくサンプル おすすめ書籍 概要 小ネタ。select ステートメントと チャネル はよく利用される組み合わせです。 このときに、チャネルの値を nil にし…

Goメモ-122 (別ファイルのExcelシートをコピーしてもってくる)

概要 シートコピーする関数がない GoはやめてPythonでスクリプト書いちゃおう 自前ライブラリにシートコピー関数を追加する サンプル おすすめ書籍 概要 以下、自分用メモも兼ねています。 以前にExcel関連の処理をGoからいろいろ操作したりした記事を何個か…

Goメモ-121 (ゴルーチンの完了検知方法あれこれ)

概要 投げっぱなし(完了検知なし) doneチャネルを使って完了検知 sync.WaitGroup を使って完了検知 context.Context を用いて完了検知(context.Context.WithCancel) context.Context を用いてタイムアウト付きで完了検知(context.Context.WithTimeout) …

Goメモ-120 (play-with-go.dev)(インタラクティブにGoの勉強が出来るサイト)

概要 おすすめ書籍 概要 勉強になりそうなサイトだったので忘れないうちにメモメモ。。。 play-with-go.dev こんな感じのものです。 A series of hands-on, interactive, browser-based guides that introduce the tools required to work with the Go progr…

Goメモ-119 (time.Tickとtime.NewTickerの使い分け)

概要 time.Tickは goroutine leak する サンプル おすすめ書籍 概要 小ネタ。知らなかったので忘れないうちにメモメモ。 time.Tick は、特定のインターバルで処理をする場合にとても便利。 指定時間の間、特定のインターバルで処理を繰り返すようなものが書…

Goメモ-118 (go list でビルド対象ファイルとテストファイルを出力)

概要 -f オプション 試してみる おすすめ書籍 概要 小ネタ。前回「外部テストパッケージ」について書きましたが devlights.hatenablog.com ついでに、go list でビルド対象のファイルとテスト対象ファイルを出力してみます。 -f オプション go list コマンド…

Goメモ-117 (外部テストパッケージについて)(External Test Package)

概要 Example作るときに謎だったこと 外部テストパッケージという仕組み 先のExample関数を外部テストパッケージにする export_test.go というトリック サンプル 今回のサンプルリポジトリ 参考情報 おすすめ書籍 概要 ずっと謎だったことがやっと理解できた…

Goメモ-116 (文字列末尾の改行を除去)(strings.TrimRight)

概要 サンプル おすすめ書籍 概要 よく忘れるので、ついでにメモメモ。 文字列末尾の改行コードを除去したいときがたまにあるのですが、Goの場合は正規表現を使うよりも strings パッケージの関数を使った方が楽なときが多いです。 以下のような感じ。Unix系…

Goメモ-115 (VSCode(Gitpod)でGoプログラムのデバッグ時に標準入力がサポートされない?)

概要 で、自分の場合 参考情報 おすすめ書籍 概要 忘れないうちにメモメモ。 最近、ちょっとVSCodeちゃんと使おうと思って、Goのプログラムをデバッグしてみたりしてたのですが 標準入力を受けて、動作するプログラムをデバッグ実行してみたところ、デバッグ…

Goメモ-114 (WSL1だとVSCodeでGoのデバッグが出来ない)

概要 参考情報 おすすめ書籍 概要 忘れないうちにメモメモ。 たまたま、WSL1の環境でVSCodeを Visual Studio Code Remote - WSL 拡張機能経由で起動してGoのプログラムをデバッグしようとしてたのですが デバッガが動かない という事態になりました。他の環…

Goメモ-113 (tealeg/xlsx にて1セルに複数行テキストを設定した場合のメモ)

概要 サンプル 実行してみる 参考情報 おすすめ書籍 概要 たまに使った時に忘れているので、ここにメモメモ。 個人的に、Excel処理する場合は tealeg/xlsx を使わせてもらっています。使いやすいので重宝しています。 github.com んで、1つのセルの中に複数…

Goメモ-112 (配下の全パッケージに対してgolint と go vet する)

概要 おすすめ書籍 概要 最近は、golangci-lint があるので、golint と go vet を直接利用することはあまり無いかもしれませんが、よく忘れるのでメモメモ。 go list ./... とすると配下のパッケージ全部を出力してくれます。 なので、それを golint に食べ…

Goメモ-111 (ビルド時にデバッグ情報とかを消してサイズを小さくする, ldflags, trimpath, upx)

概要 サンプル ビルド対象とするソース 普通にビルド ldflags オプションを付けてビルド trimpath オプションを付けてビルド ldflags と trimpath を両方指定してビルド ビルドしたものに upx で圧縮かける 実行速度は? 全部の実行結果まとめ 参考情報 おす…

TCPソケットがclose状態の時の挙動についての情報メモ (Writing to a closed, local TCP socket not failing)

概要 追記 概要 とても、有益な情報があったので、忘れないようにメモメモ。 この知識は、使っているプログラミング言語関係なく有用。 qiita.com qiita.com 記事書いてくださった方に感謝です。 一つ目の記事の冒頭にある サーバがコネクションをclose後し…

Goメモ-110 (フォーマット書式の %*s について)

概要 サンプル 参考情報 おすすめ書籍 概要 忘れそうなのでメモメモ。 書籍「プログラミング言語Go」を見てたら、以下のようなフォーマット書式が記載されていました。 fmt.Printf("%*s<%s>\n", depth*2, "", .n.Data) 説明の部分には以下のように記載されて…

Learn X in Y minutes (いろんなプログラミング言語の特徴とかを載せてくれているサイト)

概要 概要 面白いサイト見つけたので、忘れないうちにメモメモ。 learnxinyminutes.com 各言語の特徴とか機能を1ページ分で一気に説明してくれています。 たいていの言語はあるので、ざっくり掴むのにちょうどいいかもしれません。 過去の記事については、…

Goメモ-109 (go test 時に -tags を付けて実行するテストを制御)

概要 サンプルについて 試してみる テスト対象を用意 テストを用意 追加テストで実行するテストを用意 ビルドタグを指定せずに実行 ビルドタグを指定して実行 参考情報 おすすめ書籍 概要 ちょっとしたTipsです。知ってると便利かもしれません。 go test す…

Goメモ-108 (Protocol Buffers でシリアライズとデシリアライズ)

概要 サンプルについて Protocol Buffers を動作させる上で必要なものをインストール protoファイルを作成 protoファイルからGoのコードを生成 サンプル 参考情報 おすすめ書籍 概要 少し前に grpc のメモを書いたのですが devlights.hatenablog.com ついで…

Goメモ-107 (go getで参照しているパッケージを一括更新)

概要 情報を探す 試してみる 直下に main パッケージがある場合 main パッケージがカレントディレクトリに無いパターン おすすめ書籍 概要 忘れないうちにメモメモ。。。 プロジェクトで参照しているライブラリが複数ある場合に一括でアップデートしたいとき…

Goメモ-106 (「プログラミング言語Go完全入門」が公開されている)

概要 おすすめ書籍 概要 忘れないうちにメモメモ。 メルカリさんが以前に限定公開してくださっていた「プログラミング言語Go完全入門」が完全公開になったみたいです。 engineering.mercari.com bit.ly とても素晴らしい資料です。公開してくださって感謝で…

Goメモ-105 (gRPCでUnixドメインソケットのメモ)

概要 サンプルについて gRPC を動作させる上で必要なものをインストール protoファイルを作成 protoファイルからGoのコードを生成 サービスを実装 サーバとクライアントを実装 サーバ側 クライアント側 実行してみる 通信内容を覗いてみる おすすめ書籍 概要…

Goメモ-104 (pkg.go.devの 公式バッジ ジェネレーター)

概要 おすすめ書籍 概要 pkg.go.dev で、いつのまにか バッジ を作れるようになってたんですね。忘れないうちにメモメモ。 pkg.go.dev ページのURLのところの例が https から始まったアドレスが表示されていますが githubのリポジトリの場合は github.com/xx…

Goメモ-103 (Go で Unix domain socket (AF_UNIX) のメモ)

概要 Goでの処理の仕方 サーバ クライアント サンプルソースについて 基本的な使い方のサンプル サーバ側 クライアント側 動作確認 サーバ起動。 クライアント起動 通信内容を覗いてみる メッセージ用の構造体を作って通信仕様に従って通信 (1) 構造体定義 …

Goメモ-102 (Explicit argument indexes, Printfで同じパラメータを使い回す)

概要 サンプル おすすめ書籍 概要 知らなかったので、忘れないうちにメモメモ。 Go で、fmt.Printf とかするときに x := 1 fmt.Printf("%d(%T)\n", x, x) という様に同じパラメータを複数回使いたいときに、今まで上のようにやってたんですが golang.org を…

Goメモ-101 (ビット操作メモ, ビット演算子)

概要 サンプル おすすめ書籍 概要 Goでのビット操作の基本的な部分をメモメモ。 こういうのって、大体使うときにど忘れしていることが多いので。。。 サンプル package bitop import ( "github.com/devlights/gomy/output" ) // Basic -- 基本的なビット操作…

Goメモ-100 (省略変数宣言 := と変数スコープ でよくやってしまうミス )

概要 なんで? 解決策 省略変数宣言せずに済ます 別の名前か型で定義しておいて、後で設定する おすすめ書籍 概要 自分でも未だにたまにやるミスで、今まで他の人にも何度か「なんでこうなるの?」って聞かれたのでついでにメモメモ。 書籍「プログラミング…

Goメモ-99 (ループ変数をポインタ渡しすると意図せぬ動作になる場合がある)

概要 Goのループ変数は使いまわしされる 回避策は? サンプル おすすめ書籍 概要 久し振りにタイトルのミスをやってしまったので、忘れないようにメモです。 よく言われていることなんですが、ふとしたときにやってしまうんですよね・・・。 Goのループ変数…

Goメモ-98 (Go 1.15 リリース と ついでにchromebook linux の go をアップデート)

概要 Chromebook の Linux コンテナ に入れている Go をアップデート まずはダウンロード 解凍して所定の場所に置く シンボリックリンクを調整 参考情報 おすすめ書籍 概要 Go 1.15 がリリースされましたね。 blog.golang.org リリースノートとかについては…

JetBrainsの日本語技術サポートが開始されたとのこと

概要 日本語営業窓口 日本語ウェブページ IDE日本語化パック (EAP) 日本語技術サポートページ JetBrainsテクニカルサポートの利用方法 概要 ついにJetBrainsの日本語技術サポートが開始されたみたいですね。素晴らしい。 blog.jetbrains.com 以下、自分用の…

Goメモ-97 (Go 1.15 のリリースノートと翻訳版)

概要 で、ASLR って何? 参考情報 概要 まだ、Go1.15はリリースされていませんが、RC1まで到達しています。リリースは8月の予定のとのこと。 リリースノートは、すでに以下の場所にアップされています。 tip.golang.org Qiitaの方で、上記を翻訳してくださっ…