SyMind / learning

路漫漫其修远兮,吾将上下而求索。
10 stars 1 forks source link

Go `internal` 目录 #65

Open SyMind opened 1 year ago

SyMind commented 1 year ago

在 "internal" 目录下的代码,只能被 "internal" 父目录下的代码导入。如:

/home/user/go/
    src/
        crash/
            bang/              (go code in package bang)
                b.go
        foo/                   (go code in package foo)
            f.go
            bar/               (go code in package bar)
                x.go
            internal/
                baz/           (go code in package baz)
                    z.go
            quux/              (go code in package main)
                y.go

z.go 中的代码的路径是 "foo/internal/baz",但导入语句只能出现在 foo 目录下的文件中。foo/f.go、foo/bar/x.go 和 foo/quux/y.go 都可以导入 "foo/internal/baz",但文件 crash/bang/b.go 不可以。