やあ!私は現在 Go Lang を学習しており、自分の Notion に関する基本的なメモをいくつか取っており、それをここで公開したいと思っています。よく考えられて書かれているわけではありませんが、参考のために時々メモしているだけです。
私はMaximilian SchwarzmüllerによるUdemyコースを受講しています。
注意事項
- コードを複数のファイルに分割し、それらのファイルを複数のパッケージに分割できます
- そうすれば、それらのパッケージをプロジェクトで使用できるようになります
- これは、コードをより適切に処理するためにコードを複数のファイルに分割してコンポーネントを作成するのと似ているようです。そうすることで、独自のパッケージも作成できます
パッケージの作成
- 新しい .go ファイルを作成するだけです
- すべての go ファイルはパッケージの一部である必要があります
- 同じパッケージ内のファイルを他のファイルと宣言すると、同じパッケージ内の任意のファイル内の関数を直接使用することができます
- 例: 関数を含むファイルを作成し、別のファイルでその関数を呼び出すには、両方のファイルを同じパッケージに含めて、関数を直接呼び出すことができます
- インポートはパッケージを介して直接渡されません
- そのため、新しい go ファイルの関数で使用されている他のパッケージをインポートする必要があります
- 複数のファイルを 1 つのパッケージに作成すると、そのパッケージを別のプロジェクトで使用できます。こうすることで、何度も使用するコードを含むパッケージを作成でき、そのコードをパッケージに入れて、そのパッケージを同じ目的で別のプロジェクトで使用されています
カスタムパッケージ
- カスタム パッケージを作成するには、そのパッケージ用に新しいフォルダーを作成する必要があります
- フォルダー名はパッケージと同じである必要があります
- ファイル名は異なっていてもよく、パッケージと同じである必要はありません
package fileops
import (
"errors"
"fmt"
"os"
"strconv"
)
func writeFloatToFile(value float64, fileName string) {
valueText := fmt.Sprint(value)
os.WriteFile(fileName, []byte(valueText), 0644)
}
- ここには fileops という名前のパッケージがあり、そのフォルダー名は fileops で、ファイルが含まれています
- そのファイルには任意の名前を付けることができます。ファイルの上に、ファイルが含まれるパッケージ名を宣言します
パッケージの使用
- このカスタム パッケージを使用するには、インポートする必要があります。プロセスは他の組み込みパッケージと同じです
- ただし、この場合は go.mod ファイルと同じパスを指定する必要があります
package main
import (
"fmt"
"example.com/bank/fileops"
)
- ここで、example.com/bank はプロジェクトの作成時に作成された go.mod ファイルからのものです
識別子のエクスポート - 変数、関数など…
- 別のパッケージの関数を使用していて、そのパッケージを作成している場合は、それらの関数をエクスポートする必要があります
- 名前が大文字で始まるように定義されたパッケージから何かをエクスポートするには
package fileops
import (
"errors"
"fmt"
"os"
"strconv"
)
func writeFloatToFile(value float64, fileName string) {
valueText := fmt.Sprint(value)
os.WriteFile(fileName, []byte(valueText), 0644)
}
- これは、JavaScript のエクスポート キーワードと同じように機能します。エクスポート キーワードを使用して関数または変数を定義し、その変数または関数をエクスポートする必要があり、他のファイルで使用できることを明示的に定義します
- つまり、関数または変数の名前によって、何かがエクスポートされるかどうかを定義できます。
package main
import (
"fmt"
"example.com/bank/fileops"
)
- Go には独自のパッケージ ディレクトリがあり、そこから使用できるパッケージを入手できます。場合によっては、最初から作成したくない機能がいくつかあるため、GO で利用できる「外部パッケージ」を使用できます。 .
- これは NPM パッケージと同様の概念です
外部パッケージの使用
- パッケージをシステム上にグローバルに追加する Go コマンドがあります。
func WriteFloatToFile(value float64, fileName string) {}
func GetFLoatFromFile(fileName string) (float64, error) {}
- このコマンドを実行すると、go.mod ファイルが変更され、パッケージがそこにリストされ、すべてのサードパーティの依存関係がそこにリストされます。
package main
import (
"fmt"
"example.com/bank/fileops"
)
fileops.WriteFloatToFile(accountBalance, accountBalanceFile)
- パッケージを使用するには、それを使用する go ファイル内でインポート パスを定義できます。インポート パスは、go.mod ファイルに保存されている github リンクと同じです。
go get github.com/Pallinder/go-randomdata
- その後の使用プロセスは同じで、ランダムデータを使用します。公式サイトからすべてのメソッドを取得し、パッケージのページを参照して、使用できるすべてのメソッドを確認します。
module example.com/bank
go 1.22.1
require github.com/Pallinder/go-randomdata v1.2.0 // indirect
以上がGO の学習 : - パッケージの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。