回答編集履歴
3
一部訂正。
test
CHANGED
@@ -1,6 +1,3 @@
|
|
1
|
-
若干情報不足なため、想像に基づいて書いている点もあることをご了承ください。
|
2
|
-
|
3
|
-
---
|
4
1
|
GOPATHによるワークスペースモードを使わないのであれば、`src`、`pkg`、`bin`というサブディレクトリは必要ありません。
|
5
2
|
|
6
3
|
また、モジュール名を見る限り`hello`は公開モジュールとして使ってもらうことを想定していないのではないかとも思えます (learning.comというのが何なのかはわかりませんでした)。その場合は独立した`go.mod`を書く必要はありません。
|
@@ -79,7 +76,7 @@
|
|
79
76
|
|
80
77
|
質問者さんが参考になさった書籍はGo 1.15.1を前提にしているとのことです。
|
81
78
|
|
82
|
-
`go get`はGo 1.17で非推奨となり、Go 1.18で廃用となっています。つまり質問者さんの使っているGo 1.20.7では使用で
|
79
|
+
たとえば、`go get`のモジュール外での使用はGo 1.17で非推奨となり、Go 1.18で廃用となっています。つまり質問者さんの使っているGo 1.20.7では従来の使用方法で使えない場合があります (その場合には「インストールには`go install`を使え」といったエラーメッセージが出ます)。
|
83
80
|
|
84
81
|
Goはここ数年でかなり変化がありましたから、書籍やウェブの記事などを参考にするときは公式サイトなどの最新の情報と照らし合わせるようにするとよいです。
|
85
82
|
|
2
勝手に作った用語を使っていたので修正
test
CHANGED
@@ -3,9 +3,9 @@
|
|
3
3
|
---
|
4
4
|
GOPATHによるワークスペースモードを使わないのであれば、`src`、`pkg`、`bin`というサブディレクトリは必要ありません。
|
5
5
|
|
6
|
-
また、モジュール名を見る限り`hello`
|
6
|
+
また、モジュール名を見る限り`hello`は公開モジュールとして使ってもらうことを想定していないのではないかとも思えます (learning.comというのが何なのかはわかりませんでした)。その場合は独立した`go.mod`を書く必要はありません。
|
7
7
|
|
8
|
-
次のようなディレクトリ構成にすれば、`hello`
|
8
|
+
次のようなディレクトリ構成にすれば、`hello`パッケージが`project`モジュールのサブパッケージとなり、`project/hello`としてインポートできます。`replace`行によってリモートパスをローカルパスに置き換えたりする必要はありません。
|
9
9
|
```
|
10
10
|
project/
|
11
11
|
+- go.mod
|
@@ -34,9 +34,9 @@
|
|
34
34
|
...
|
35
35
|
```
|
36
36
|
|
37
|
-
###
|
37
|
+
### 公開モジュールにする場合
|
38
38
|
|
39
|
-
一方、`hello`
|
39
|
+
一方、`hello`を公開モジュールにしたいのであれば、モジュール固有の`go.mod`を作成する必要があります。
|
40
40
|
|
41
41
|
また、`module`行にはリモートパスを書く必要があります (当然、そのリモートパスの場所にモジュールを置いておく必要があります。実際にどうやるかは別途調べてください)。
|
42
42
|
|
@@ -63,7 +63,7 @@
|
|
63
63
|
```
|
64
64
|
`require`行は`go mod tidy`を実行すれば自動的に追加されます。
|
65
65
|
|
66
|
-
また、ローカルパスにある`hello`モジュールを使いたければ、次のような`replace`行を追加します (ちなみに
|
66
|
+
また、ローカルパスにある`hello`モジュールを使いたければ、次のような`replace`行を追加します (ちなみに**相対パスも書ける**はずです)。
|
67
67
|
```
|
68
68
|
replace github.com/none/hello => ローカルのhelloへのパス
|
69
69
|
```
|
1
余談: Goのバージョンについて
test
CHANGED
@@ -75,4 +75,11 @@
|
|
75
75
|
|
76
76
|
...
|
77
77
|
```
|
78
|
+
### 余談
|
78
79
|
|
80
|
+
質問者さんが参考になさった書籍はGo 1.15.1を前提にしているとのことです。
|
81
|
+
|
82
|
+
`go get`はGo 1.17で非推奨となり、Go 1.18で廃用となっています。つまり質問者さんの使っているGo 1.20.7では使用できません (「インストールには`go install`を使え」といったエラーメッセージが出たはずです)。
|
83
|
+
|
84
|
+
Goはここ数年でかなり変化がありましたから、書籍やウェブの記事などを参考にするときは公式サイトなどの最新の情報と照らし合わせるようにするとよいです。
|
85
|
+
|