Go 【Go入門】コードを整形 – gofmt Go言語のgofmtコマンドを扱います。gofmtコマンドをファイルを指定して実行すると、ファイル内のインデントのズレなどを自動的に整形してコードを修正することができます。ただし、エディタなどに自動整形してくれる機能があったりします。 2020.07.03 Go
Go 【Go入門】パッケージの基本 Go言語のパッケージの使い方の基本についてパッケージを自作して見ていきます。パッケージ無いに定義する関数などは大文字ではじめないと、外部からインポートできないことに注意です。インポート時も保存されたディレクトリまでのパスを指定する必要があります。 2020.07.01 Go
Go 【Go入門】mutexで処理をロック Go言語のゴルーチンの処理についてmutexを扱います。sync.MutexのLock()、Unlock()を使って、複数のゴルーチンが実行されている時に1つのゴルーチンだけが処理コードにアクセスできるようにロックして、処理の衝突を防ぎます。 2020.06.30 Go
Go 【Go入門】チャネルとselect文 Go言語のselect文を扱います。select文を使うことで、ゴルーチンは複数の操作を待機することができ、複数のチャネルを使った処理をすることができます。select文はswitch文のcaseの処理に似ています。 2020.06.29 Go
Go 【Go入門】チャネルのrangeとclose() Go言語のゴルーチンを使った並行処理におけるチャネルのrangeとclose()について扱います。rangeを使ってチャンネルの値を取り出す時は、close()を使ってチャネルの終了を示しておく必要があります。 2020.06.28 Go
Go 【Go入門】チャネルのバッファ(Buffered Channels) Go言語のチャネルのバッファ(Buffered Channels)について扱います。チャネルにバッファを設定することで、チャネルのキャパシティを設定することができます。反復処理において、チャネルの終了を示すclose()についても扱います。 2020.06.27 Go
Go 【Go入門】チャネル(channel)の基本 Go言語のチャネル(channel)の基本について見ていきます。別々で行われている並行処理の中で、データの受け渡しができるのがチャネルです。make(chan 型名)でチャネルを作り、矢印(<-)を使って値の受け渡しを行います。 2020.06.26 Go
Go 【Go入門】並行処理 – ゴルーチン(goroutine), WaitGroup Go言語の並行処理について、基本的なところを見て行きます。ここでは、ゴルーチン(goroutine)とWaitGroupを使って基本的な並行処理を行います。 2020.06.25 Go
Go 【Go入門】メソッドセット(Method sets) ここでは、Go言語のメソッドセット(Method sets)を扱います。メソッドセットは特定のtypeに結びつけられたメソッドで、非ポインタのレシーバの場合は非ポインタ、ポインタ両方の値で機能し、ポインタのレシーバの場合はポインタの値でのみ機能します。 2020.06.24 Go
Go 【Go入門】new()とポインタ Go言語の組み込み関数new()について扱います。new()関数は、引数に型をとり、型のポインタを返す関数です。受け取った型をゼロ値で初期化すると型のポインタを返します。 2020.06.22 Go
Go 【Go入門】ポインタの基本 Go言語のポインタ(Pointers)について基本的なところを扱います。アドレス演算子の&、ポインタ型の*の使い方と意味を理解しましょう。ポインタはメモリ上のあるアドレスを参照して値を操作するので、通常の変数の操作との違いを確認しましょう。 2020.06.21 Go
Go 【Go入門】インターフェイス(interface) Go言語のインターフェイス(interface)について簡単に触れておきます。インターフェイスにはメソッドのみを定義し、レシーバで受けた別のstructで関連づけたメソッドをインターフェイスで関連づけて利用します。 2020.06.19 Go
Go 【Go入門】構造体とメソッド Go言語のメソッドについて扱います。Go言語でのメソッドは、他のプログラミング言語のメソッドとは少し違って、特定の型に関連付けられた関数をメソッドとします。構造体をレシーバとして、関数に関連づけて定義します。 2020.06.18 Go
Go 【Go入門】匿名の構造体(Anonymous structs) Go言語の匿名の構造体(Anonymous structs)を扱います。通常の構造体と違い、構造体名を持ちません。匿名構造体は限定された場所で使うことで、構造体を複数定義することで利用しない変数が増えて煩雑になることを避けることができます。 2020.06.17 Go
Go 【Go入門】構造体の埋め込み(Embedded structs) Go言語の構造体の埋め込み(Embedded)について扱います。1つの構造体を、別の構造体に埋め込んで利用できます。埋め込みには、構造体のフィールド名を当てて設定します。外側の構造体から内側の構造体には、内側のフィールド名でアクセスできます。 2020.06.17 Go
Go 【Go入門】構造体の宣言(Struct) Go言語の構造体(Struct)の宣言について基本的なところを扱います。構造体を定義することで、異なるタイプの値を一緒に扱うことができます。typeキーワードを使って構造体名を記述しstruct型を指定することで、複数のデータを格納することができます。 2020.06.16 Go
Go 【Go入門】クロージャー(Closure) Go言語のクロージャー(Closure)について基本的な動きを確認します。クロージャーは、変数のスコープをその範囲の中に制限することができるという機能です。 2020.06.16 Go