回答編集履歴

3

一部訂正。

2023/09/07 02:23

投稿

ikedas
ikedas

スコア4443

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では使用でせん (「インストールには`go install`を使え」といったエラーメッセージが出たはずです)。
79
+ たとえば、`go get`のモジュール外での使用はGo 1.17で非推奨となり、Go 1.18で廃用となっています。つまり質問者さんの使っているGo 1.20.7では従来の使用方法使えない場合があり (その場合には「インストールには`go install`を使え」といったエラーメッセージが出す)。
83
80
 
84
81
  Goはここ数年でかなり変化がありましたから、書籍やウェブの記事などを参考にするときは公式サイトなどの最新の情報と照らし合わせるようにするとよいです。
85
82
 

2

勝手に作った用語を使っていたので修正

2023/09/06 05:10

投稿

ikedas
ikedas

スコア4443

test CHANGED
@@ -3,9 +3,9 @@
3
3
  ---
4
4
  GOPATHによるワークスペースモードを使わないのであれば、`src`、`pkg`、`bin`というサブディレクトリは必要ありません。
5
5
 
6
- また、モジュール名を見る限り`hello`モジュールプライベートモジュール (公開して使ってもらうことを想定しないモジュール) なのではないかとも思えます (learning.comというのが何なのかはわかりませんでした)。その場合は独立した`go.mod`を書く必要はありません。
6
+ また、モジュール名を見る限り`hello`は公開モジュールして使ってもらうことを想定していないのではないかとも思えます (learning.comというのが何なのかはわかりませんでした)。その場合は独立した`go.mod`を書く必要はありません。
7
7
 
8
- 次のようなディレクトリ構成にすれば、`hello`ュールは`project`モジュールのサブュールとなり、`project/hello`としてインポートできます。`replace`行によってリモートパスをローカルパスに置き換える必要はありません。
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`モジュールパブリックモジュールにしたいのであれば、モジュール固有の`go.mod`を作成する必要があります。
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のバージョンについて

2023/09/06 04:15

投稿

ikedas
ikedas

スコア4443

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
+