Goのセットアップとチュートリアル【1】

こんにちは、ナナオです。 Goを触り始めるにあたり、どこで勉強するかなどをまとめます。 インストール インストールはmiseでやりました。 Home | mise-en-place mise use -g go どこで勉強したか(するか) GoにはA tour of Goという公式のチュートリアルが用意されているので、そこでやりました。 A Tour of Go ローカルからこのチュートリアルを実行したい場合は以下のコマンドを実行します。 go install golang.org/x/website/tour@latest $GOROOT/bin/tour 印象に残ったところ naked return 関数内の変数をそのまま返却する実装方法 ほかの言語にはない特徴的な記法ですね(実務で使うかどうかは置いといて) package main import "fmt" func split(sum int) (x, y int) { x = sum * 4 / 9 y = sum - x return } func main() { fmt.Println(split(17)) } whileはない goではfor文がwhileを兼任しています。 package main import ( "fmt" ) func main() { sum := 1 for sum < 1000 { sum += sum } fmt.Println(sum) } 更にrustでいうloop文もforで表現可能です。 ...

2026年2月12日 · にあえん

GoでgRPCをササッと実装してみる 1

こんにちは。ナナオです。 今回は触ろうと思って触ってなかったgRPCに入門してみようと思います。 gRPCとは? gRPCとは、GoogleがRPCを実現するために作った技術のことです。 詳細については以下のサイトがかなり細かく説明してくれています。 https://zenn.dev/hsaki/books/golang-grpc-starting gRPCサーバーを動かす まずはgRPCのリクエストとレスポンスを定義するためのprotoファイルを作成します。 適当なディレクトリを作成して、Goモジュールとして初期化しておきましょう。 mkdir go_grpc_playground && cd go_grpc_playground go mod init go_grpc_playground 次に、protoファイルを作成します。 (参考にしてるサイトをパクってるだけですが。。) // protoのバージョンの宣言 syntax = "proto3"; // protoファイルから自動生成させるGoのコードの置き先 option go_package = "pkg/grpc"; // packageの宣言 package myapp; // サービスの定義 service GreetingService { // サービスが持つメソッドの定義 rpc Hello (HelloRequest) returns (HelloResponse); } // 型の定義 message HelloRequest { string name = 1; } message HelloResponse { string message = 1; } 次にこのprotoファイルからgoファイルを作成するためのモジュールをインストールします。 brewがあれば以下のコマンドで一発インストールできます。 brew install protobuf インストールするとprotocというコマンドが使用可能になります。 続けて、必要なモジュールを依存関係に追加しておきます。 go get -u google.golang.org/grpc go get -u google.golang.org/grpc/cmd/protoc-gen-go-grpc さて、今のディレクトリはこうなっています。 ...

2024年11月17日 · にあえん