0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Goのinternalディレクトリに関して理解する

Last updated at Posted at 2024-10-12

はじめに

Goのinternalパッケージについて学ぶ記事です。
下記記事を実際に動かすとどうなるんだろうと思い、試してみました!

ソースコード

参考記事と同様のディレクトリ構成

ディレクトリ構成
~/go/internal_jikken$ tree
.
├── b
│   └── d
│       ├── d.go
│       └── internal
│           └── e
│               └── e.go -- d.goからのみアクセス可能
├── c
│   └── c.go -- internal配下のe.goはアクセス不可能
└── go.mod

6 directories, 4 files

internalディレクトリ内のファイル

b/d/internal/e/e.go
package e

import "fmt"

func InternalFunc() {
	fmt.Println("This is an internal function!")
}

import可能

internalと同階層ディレクトリに配置されているパッケージb/d/d.goはimport可能

パス:b/d/d.go
image.png

問題なくimportできています

import不可

internalと異なるディレクトリに保存されている場合はimport不可

パス:c/c.go
スクリーンショット 2024-10-03 17.34.36.png

importしようとするとコンパイルエラーが発生します

おわりに

確かにimportエラーが発生しましたね。
外部からアクセスする要件がない場合に利用すると効果的ですね!!⭐️

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?