いろいろ備忘録日記

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

golang

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の方で、上記を翻訳してくださっ…

Goメモ-96 (スライスの要素のクリアについて)(要素削除, メモリ状態をキープ)

概要 スライスの要素をキレイにクリアする スライスのメモリ状態をキープしたままで長さを0にする 参考情報 概要 以下、自分用のメモです。忘れない内にメモメモ。 GOでスライスはめっちゃ使うデータ型ですが、クリアの仕方についてたまに混乱することがある…

Goメモ-95 (go で SSH接続メモ (3))

概要 サンプル 参考情報 概要 以下、自分用のメモです。忘れない内にメモメモ。 前回の記事は以下です。 devlights.hatenablog.com devlights.hatenablog.com 上記のサンプル作っている際に知ったことなんですが、 if err = sess.Run(command); err != nil {…

Goメモ-94 (go で SSH接続メモ (2))

概要 サンプル 参考情報 概要 以下、自分用のメモです。忘れない内にメモメモ。 前回の続き。今回は秘密鍵にパスフレーズを付与している場合のコードです。 前回の記事は以下です。 devlights.hatenablog.com サンプル 以下のサンプルですが、処理に必要な情…

Goメモ-93 (go で SSH接続メモ (1))

概要 ライブラリのインストール SSH接続する前準備 キー生成 キーをリモートにコピー 鍵認証でログインできるか確認 リモートサーバの公開鍵を確認 サンプル 参考情報 概要 以下、自分用のメモです。忘れない内にメモメモ。 GoでSSH接続してコマンド実行して…

GitHub Super Linter 触ってみた

概要 テスト用のリポジトリ作る とりあえずコードを初期アップ Super Linter 用の GitHub Action を追加 試してみる 修正して再度 lint してもらう 概要 先日、Github が Super Linter という機能についてブログ記事をアップしました。 github.blog Github側…

Goメモ-92 (/dev/null のように出力を捨てる io.Writer)(ioutil.Discard)

概要 サンプル 参考情報 概要 たまに、io.Writer が必要なのだけれども、出力データ自体は必要ないので捨てたいときがあります。 例えば、複数のURLに対して HTTP GET を並行で処理した場合の処理時間が知りたいときとか。 そういうときに便利な io.Writer …

Goメモ-91 (VS Code の Go 拡張機能 がGo公式プロジェクトになった)

概要 概要 今日のニュースで知ったので、メモメモ。 golang.blog code.visualstudio.com Go開発者の約41%が VS Code 使っているんですねー。 VS Code起動してみたら、ちゃんと パブリッシャー の名前が Go Team at Google 変わっていました。 以下、自分用。…

Goメモ-90 (Go の enum と iota の使い方メモ)

概要 Enum のサンプル iota のサンプル 参考 概要 Go には、C#などのように enum という型がありませんが、定数を使って同じような感じにすることが出来ます。 enum と iota に関して、とても参考になった記事があったので、忘れない内にメモメモ。 https://…

Goメモ-89 (go-cmp の使い方メモ)(比較処理用のライブラリ, Comparer)

概要 サンプル 概要 比較処理を作っている際に reflect.DeepEqual 使っていたんですが、この子、プライベートなフィールドまで比較対象にしてくれるんですね。。 ちょっと、それは必要なかったので、なんかライブラリ無いかなって探してみたら、go-cmp って…

Goメモ-88 (スライスから配列にコピーする)

概要 サンプル 参考情報 概要 Goを勉強し始めた人からよく聞く質問がこれなので、ついでにここにメモです。 やり方としては、ビルドイン関数の copy(dst, src) を使います。 golang.org copy関数のシグネチャは以下のようになってます。 func copy(dst, src …

Goメモ-87 (2つのスライスを結合する, slice concatenate)

概要 サンプル 概要 よく忘れるのでここにメモ。基本的な事なんですが 2つのスライスを結合する際の newSlice := append(sli1, sli2...) という記法をよく忘れてしまいます。。。 サンプル package slices import ( "github.com/devlights/gomy/output" ) /…

Goメモ-86 (チャネルの要素に指定された処理を適用した結果を返す関数, Map)

概要 サンプル 参考 関連記事 概要 引き続き、小ネタチャネル関数の続き。( #関連記事 参照) python には、mapというビルドイン関数があります。 こんな感じ。 $ python3 Python 3.7.7 (default, Mar 25 2020, 10:55:55) [GCC 8.3.0] on linux Type "help",…

Goメモ-85 (チャネルからのデータをフィルタリングする関数, Filter)

概要 サンプル 参考 関連記事 概要 引き続き、小ネタチャネル関数の続き。( #関連記事 参照) パイプラインを使って処理する場合、やっぱり C# の Where とか Java の filter みたいなのが欲しいところですね。 てことで、サンプルつくってみました。 サンプ…

Goメモ-84 (指定した分チャネルからのデータをスキップする関数, Skip,SkipWhile)

概要 サンプル 参考 関連記事 概要 引き続き、小ネタチャネル関数の続き。( #関連記事 参照) 以前の記事で、指定した個数または条件に合致する間、チャネルから要素を取得する Take 関数について書きました。 devlights.hatenablog.com C#のLinqには、これ…

Goメモ-83 (チャネルの要素に対してインデックスを付与して返す関数, Enumerate)

概要 サンプル 参考 関連記事 概要 引き続き、小ネタチャネル関数の続き。( #関連記事 参照) pythonに enumerate という関数があります。 この関数は、指定されたシーケンスを取り出すと同時にインデックスを付与して返してくれます。 こんな感じ。 $ pytho…