Go言語のRange:初心者向けガイド
Goのrangeの基本構文と動作を初心者向けに解説。スライスでのインデックス・値の扱い、インデックス省略、マップや文字列での使用例、foreach代替としての活用ポイントをコードと実行結果付きで紹介。スライスやマップでキーと値を取り出すパターンや文字列を1文字ずつ巡回する挙動も押さえる。
Goのrangeの基本構文と動作を初心者向けに解説。スライスでのインデックス・値の扱い、インデックス省略、マップや文字列での使用例、foreach代替としての活用ポイントをコードと実行結果付きで紹介。スライスやマップでキーと値を取り出すパターンや文字列を1文字ずつ巡回する挙動も押さえる。
Goのif文の基本構文からelse/else if、初期化ステートメントのスコープ、論理演算子を使った条件分岐まで初心者向けに解説。サンプルと実行結果、Go Playgroundで試せるコード付き。全コード掲載し、実行結果とgo1.22環境を示し理解しやすい。
Goのfor文の基本構文から無限ループ、while相当の条件のみ、rangeでのスライス走査、break/continueによる停止やスキップまでを実行結果付きコードで整理。カウンター制御からコレクション操作まで繰り返し処理の基礎が一通り学べる初心者向け入門記事。
Goでエラー比較。==は直接返るエラーのみ有効、構造体でラップすると一致しない。errors.IsはUnwrap実装済みのラップを辿って比較するので、エラーを包む型にはUnwrapを用意しGo1.13以降の規約を押さえる。例でみけ猫チェックの挙動を実演。
Go言語におけるエラー処理の仕組みについて解説します。他言語と違って例外処理(try~catch等)がなく、エラー変数に対して判定を行う単純な仕組みになっています。本記事ではエラー処理の基本的な所を解説します。
Go 1.18で導入されたジェネリクスにより、複数の型で再利用できる関数やデータ構造を定義可能になりました。本記事では基本的な書き方から型制約、`~`トークン、`map`を使った応用例まで解説し、重複削減と保守性向上のポイントをまとめます。
GoでC言語のsizeof相当を行う方法としてunsafe.Sizeofとreflect.TypeOf().Size()を紹介。intは環境依存で、string/スライス/マップは内部ヘッダ分の静的サイズになる点に注意。
Go言語のmapについて、基本的な作成・削除方法から、ネストしたmapや構造体・interface・ポインタをキーにする例、キーに指定できる型の制約、ループ時に順序が保証されない理由とソート方法までを網羅的に解説します。実践でつまずきやすい注意点を中心にまとめた記事です。
GolangのLevelDBを使ったデータベース操作を解説。データの登録・取得・範囲取得・削除の基本操作を紹介し、実際に動作確認できるサンプルコードを掲載。LevelDBの活用方法を学びたい方におすすめです。
Golangのos.Symlink関数ではシンボリックリンクの上書きができず、削除してから作成する必要があります。さらに、GKE+NFS環境でのキャッシュ問題に遭遇し、Redisを活用した回避策を実践した事例を紹介します。
PHPの`lz4_compress`で生成したLZ4データをGoで展開するとエラーになる原因と対処法を解説します。PHP版LZ4は先頭4バイトに元データサイズを含むため、その部分を除外して展開する必要があります。Go側での正しい読み込み手順をサンプル付きで紹介します。
Goでファイル存在チェックを行う際、`errors.WithStack`などでエラーをラップすると`os.IsNotExist`では正しく判定できない問題を解説します。`errors.Is`を使った正しい判定方法と、従来手法との違いをコード例付きで整理します。