いろいろ備忘録日記

主に .NET とか Java とか Python絡みのメモを公開しています。最近Go言語勉強中。

golang

Goメモ-43 (sentry-goをゴルーチン内で利用する場合の注意点)

概要 駄目なパターン 良いパターン 概要 Sentry関連で、これもついでにメモ。 インストールとか基本的な使い方については以下を参照ください。 devlights.hatenablog.com Goではゴルーチンというとても便利な非同期手段があるので よく非同期処理を手軽に書…

Goメモ-42 (sentry-goパッケージを使ってエラー情報をsentryで表示)

概要 インストール サンプル 概要 ログ関連で、これもついでにメモ。 sentry.io 個人的に好きなので、エラートラッキングとかはSentryをよく使っています。 以前は、raven-go という名前でライブラリが提供されていたのですが 最近は sentry-go という形で提…

Goメモ-41 (logパッケージのフラグ設定についてのメモ, log.Flags, log.SetFlags)

概要 サンプル 参考情報 概要 よく忘れるので、忘れないうちにメモメモ。 Goには、ログライブラリとしてlogパッケージが標準装備されています。 他の言語やっていた人間からすると、結構シンプルな形になっているなという印象。個人的には好きですが。 で、…

Goメモ-40 (ビルトイン関数のprintとfmt.Printの違い)

概要 サンプル 概要 大したことじゃないんですが、忘れないうちにメモメモ。 Goには、ビルトイン関数として print() と println() というのが用意されています。 これ、今まで fmtパッケージの方にもあるのに何で存在してるんだろうって思ってました and 使…

Goメモ-39 (ゴルーチン, Goroutines, Tour of Go)

概要 だからって非同期処理が簡単になると言う訳ではない サンプル 概要 Tour of Go の - Goroutines についてのサンプル。 tour.golang.org ついにゴルーチンまできましたね。Goといえば ゴルーチン といえるくらいGoを有名にした機能と思います。 私も例に…

Goメモ-38 (io.Readerインターフェース, Readers, Tour of Go)

概要 サンプル 概要 Tour of Go の - Readers についてのサンプル。 tour.golang.org Goのio.Readerインターフェースは、何かを読み取る基本的なインターフェースです。 このインターフェースを実装している型はとてもいっぱいあります。 インターフェースの…

Goメモ-37 (stringとruneとbyteの変換)

概要 サンプル 参考情報 概要 よく忘れるので、自分用にメモです。 Goの文字列は、 string 型で表現されます。 stringは、文字列をバイト列で持っています。 なので、string に対して、len()するとバイト数が取得できます。 Goの文字は rune 型で表現されま…

Goメモ-36 (スライスのポインタについて)

概要 サンプル 概要 よく忘れるので、自分用にメモです。 Goのスライスは、内部にデータが格納されている配列のポインタを持っています。 なので、通常スライスをポインタで利用する必要は無いと記載されていることが多いです。 ですが、C#やPythonなどでよ…

Goメモ-35 (モジュールのメジャーバージョンを2以降にした場合の取り扱い方について)

概要 メジャーバージョンをアップする場合はライブラリ側のgo.modも変更が必要 tagを作成してなかった テストで使っていたリポジトリをついでにアップしました git tag のメモ 参考情報 概要 自分的に少しハマったので忘れないうちにメモメモ。 自作のモジュ…

Goメモ-34 (モジュールの新しいバージョンをリリースしたのに go list -u -m all しても反映されない件)

概要 原因は GOPROXY に設定されている値 ミラーサイト経由しないように設定してみる 変更した GOPROXY をデフォルト値に戻す 参考情報 概要 自分的に少しハマったので忘れないうちにメモメモ。 自作のモジュールを作っていて、それを利用するプログラムも書…

Goメモ-33 (Go Modules がオンの状態でライブラリ変更してPUSHする前に使われている箇所の当たりをテストしたい)

概要 サンプル m1の方のコードに変更が入った go.mod に replace 設定を追加する go.mod の replace 設定を削除する 参考情報 概要 タイトルがクソ長いですが、忘れないうちにメモメモ。 go mod をオンにしている状態(Go1.13だとデフォルトがオン)で 他で…

Goメモ-32 (エラー, Errors, Tour of Go)

概要 サンプル 概要 Tour of Go の - Errors についてのサンプル。 tour.golang.org Goのエラー処理の仕組みはとてもシンプル。C#やJavaやPythonのように例外という概念が意図的に存在しません。 (panicとrecoverという概念もありますが、あれは別のものとし…

Goメモ-31 (型判定switch, Type Switch, Tour of Go)

概要 サンプル 概要 Tour of Go の - Type Switch についてのサンプル。 tour.golang.org 前回、Goの型検証という仕組みついて書きました。 devlights.hatenablog.com インターフェースと特定の具象型、もしくは別のインターフェース型に変換可能か検証して…

Goメモ-30 (型検証, Type Assertions, Tour of Go)

概要 サンプル 概要 Tour of Go の - Type Assertions についてのサンプル。 tour.golang.org 今回は、型検証について。 Goにも、他の言語でもある型検証の仕組みが存在します。 オブジェクト指向な言語では、よくインターフェースの型を特定の具象型に変換…

Goメモ-29 (空構造体, Empty struct)

概要 サンプル 参考情報 概要 ちょっと前に空インターフェースについて書いたので devlights.hatenablog.com ついでに、今回は空構造体についてもメモ。 空のインターフェースという型が存在するので、実は空の構造体という型もあります。 空インターフェー…

Goメモ-28 (GoLand 2019.3, チュートリアルプロジェクト, ショートカットメモ)

概要 このチュートリアルやって覚えたこと(随時追加) 概要 普段、Goのソース書くのに MacとWindowsでは GoLand 使っています。(chromebookでは、vim) 最近、最新バージョンである 2019.3 がリリースされました。 blog.jetbrains.com 全体的に動作がキビキ…

Goメモ-27 (空インターフェース, Empty interface, Tour of Go)

概要 サンプル インターフェースの合成について 概要 Tour of Go の - Empty interfaces についてのサンプル。 tour.golang.org 今回は、空インタフェースについて。 Goには、interface{}という型があります。空インターフェースといいます。 この型、他の言…

Goメモ-26 (インターフェース, Interface, Tour of Go)

概要 インターフェースとnilの関係 サンプル 概要 Tour of Go の - Interfaces についてのサンプル。 tour.golang.org 今回は、Goのインタフェースについて。 インターフェースって聞くと、身構える人もいるかもしれませんね。。 オブジェクト指向絡みの本と…

Goメモ-25 (メソッド, Methods, Tour of Go)

概要 レシーバの種類 (値レシーバとポインタレシーバ) サンプル 概要 Tour of Go の - Methods についてのサンプル。 tour.golang.org Goには、クラスの仕組みがありません。C#やJavaやPythonなどのように class を定義することが出来ないです。 可能なのは…

Goメモ-24 (マップ, Maps, Tour of Go)

概要 サンプル 概要 Tour of Go の - Maps についてのサンプル。 tour.golang.org Goは、最近の言語らしくマップ(ディクショナリともいう言語もあります)が標準装備です。 型の宣言の仕方がちょっと他の言語と比べると特殊で map[キーの型]値の型 とします…

Goメモ-23 (スライス, Slices, Tour of Go)

概要 サンプル スライスを関数に引数として渡す場合の注意点 スライスのポインタ 概要 Tour of Go の - Slices についてのサンプル。 tour.golang.org Goのスライスは、他の言語でいう 可変長リスト のようなイメージです。 配列の一部をスライスしたものか…

Goメモ-22 (配列, Arrays, Tour of Go)

概要 Goの配列のクセ サンプル 概要 Tour of Go の - Arrays についてのサンプル。 tour.golang.org Goの配列は [要素数]型名 という形で宣言します。 var ( arr [2]int ) 上だと、要素数が2のintの配列を定義しています。 特殊なのが、Goでは、配列の長さ…

Goメモ-21 (50 Shades of Go, Goでよくやりがちな間違い50個)

概要 概要 いい情報見つけたので、忘れないうちにメモメモ。 devs.cloudimmunity.com Goでよくやる間違いについて、正誤を載せて書いてくれています。 ちょっと内容が古いものもありますが、問題なしです。 個人的に Using "nil" Slices and Mapsってやつは…

Goメモ-20 (構造体, Structs, Tour of Go)

概要 サンプル 概要 Tour of Go の - Structs についてのサンプル。 tour.golang.org Goの構造体はフィールドの集まりを表現します。 特に変な点はないですね。 普通に定義して普通に使います。 構造体に関しては、メソッドという概念があるのですが それは…

Goメモ-19 (ポインタ, Pointer, Tour of Go)

概要 サンプル 概要 Tour of Go の - Pointer についてのサンプル。 tour.golang.org Go には、C言語などと同様にポインタが存在します。 ポインタは、対象の値のメモリアドレスを保持します。ゼロ値はnilです。 C言語とは違い、Go ではポインタ演算は出来な…

Goメモ-18 (遅延呼び出し, Defer, Tour of Go)

概要 サンプル 概要 Tour of Go の - Defer についてのサンプル。 tour.golang.org defer は、 Go言語の特徴的な機能の一つですね。 defer ステートメントは、deferに渡した関数の実行を呼び出し元の関数の終わりまで遅延させる機能です。 他の言語でいうと…

Goメモ-17 (分岐, Switch, Tour of Go)

概要 サンプル 概要 Tour of Go の - Switch についてのサンプル。 tour.golang.org Goの switch は、他の言語に比べてとても高機能で使いやすいです。 以下のようなことが出来ます。 自動で fall-through しないので、breakを書く必要がない case に指定す…

ChromebookのLinux (ベータ版)のDebian 9 (stretch) を 10 (buster) にアップグレード

概要 busterにアップグレード前にstretchの最新版にしておく apt の設定ファイル (/etc/apt/sources.list) を調整 アップグレード実行 確認 ロケールの変更 ターミナルのプロファイルの変更 参考にした情報 概要 support.google.com にある通り、最近の Chro…

Goメモ-16 (今の環境を崩さずにお手軽に別のバージョンのgoを使う)

概要 こんな感じ 概要 やり方をちょくちょく忘れてしまうので、忘れないうちにメモメモ。 今の環境は変えたくないけど、別のGoのバージョンを使いたいときに知ってると便利かもってやり方。 Dockerでコンテナ作ってしまうのもありだと思いますが、こっちもお…

Goメモ-15 (分岐, If, Tour of Go)

概要 サンプル 概要 Tour of Go の - If についてのサンプル。 tour.golang.org Goのifの書き方は、他の言語と同じです。 if xxx { } C#やJavaなどと違って、( ) をつける必要がないですね。 個人的にはこっちの方が好きです。 Goでは、さらにステートメント…