Go

Go

【Go】比較検証 : GoアプリをDockerでビルド・デプロイし、Python/Node.jsと比較する

こんにちは、かつコーチです。これでGo編は20本目、最終回です。これまで入門・基本文法・並行処理・CLIツール・Web APIと積み上げてきましたが、最後は本番運用に欠かせないデプロイの話で締めくくります。Docker編で解説したマルチステ...
Go

【Go】channelの基本:goroutine同士でデータをやり取りする

こんにちは、かつコーチです。前回はgoroutineの基本を解説しました。goroutineは便利な反面、そのままでは複数の歯車がバラバラに動くだけで、お互いにデータをやり取りできません。そこで登場するのがchannelです。この記事では、...
Go

【Go】配列とスライスの違い・使い方

こんにちは、かつコーチです。「配列とスライス、結局どっちを使えばいいの?」。Goを学び始めると、必ずと言っていいほどぶつかる疑問です。結論から言うと、実務ではスライスを使う場面がほとんどです。この記事では、配列とスライスの違いを整理しつつ、...
Go

【Go】実践:ファイル一括処理CLIツールを作る

こんにちは、かつコーチです。前回の記事では、flagパッケージでコマンドライン引数を受け取る基本を解説しました。今回はその知識を使って、実際に手元のフォルダで使えるCLIツール(コマンドラインから操作するツール)を1本作ります。作るのは、指...
Go

【Go】if・switchで条件分岐する

こんにちは、かつコーチです。プログラムを書いていると、「条件によって処理を変えたい」という場面は必ず出てきます。この記事では、Goの条件分岐の基本であるif文とswitch文の使い方を解説します。他の言語を経験している方ほど戸惑いやすいポイ...
Go

【Go】変数宣言とデータ型の基本(varと:=の使い分け)

こんにちは、かつコーチです。Goを書き始めると、すぐにvarと:=という2種類の変数宣言に出会います。「どっちを使えばいいの?」と迷う方は多いのではないでしょうか。この記事では、基本データ型とあわせて、2つの宣言方法の違いと使い分けを解説し...
Go

【Go】goroutineの基本:軽量スレッドで並行処理する

こんにちは、かつコーチです。前回の記事ではエラーハンドリングの基本を解説しました。今回はGoの大きな魅力の1つであるgoroutineについて、基本から実体験を交えて解説します。「goをつけるだけで並行処理できるらしいけど、実際どう動くの?...
Go

【Go】for文の基本:Goにwhileがない理由

こんにちは、かつコーチです。「Goでループを書きたいのに、whileって書いてもエラーになる」。他の言語からGoに入った人が、最初につまずくポイントの一つです。実はGoには繰り返し構文がforしかありません。この記事では、なぜGoがforだ...
Go

【Go】flagパッケージでコマンドライン引数を扱う基本

こんにちは、かつコーチです。今回は実用寄りに、CLIツール作りに欠かせないflagパッケージの基本を解説します。go run main.go -name=Taroのような引数を受け取りたいとき、最初に使う標準ライブラリです。flagパッケー...
Go

【Go】エラーハンドリングの基本:if err != nilの流儀

こんにちは、かつコーチです。Go言語を書き始めた人が最初にとまどうのが、エラー処理の書き方だと思います。「なんでtry-catchがないんだろう」「if err != nilばっかりでコードが縦に伸びる」。そう感じたことがある人は多いはずで...
Go

【Go】Go言語の環境構築とGoモジュールの基本(go mod init)

こんにちは、かつコーチです。Goを始めようと思っても、「インストールはどうやるの?」「go modって何?」とつまずく方は多いです。この記事では、インストール手順からgo mod initの意味まで順番に解説します。読み終える頃には、自分の...
Go

【Go】Goとは?シンプルさと高速性を両立する言語を初心者向けに解説

こんにちは、かつコーチです。「Go言語って最近よく聞くけど、結局どんな言語なの?」そんな疑問を持ってこの記事にたどり着いた方も多いと思います。今回はGo言語がどんな特徴を持つ言語なのか、初心者の方にもわかりやすく解説します。読み終える頃には...