Robert,

First, read,

The Go Programming Language Specification 
https://golang.org/ref/spec

Packages
https://golang.org/ref/spec#Packages

Peter

On Wednesday, April 11, 2018 at 9:22:04 AM UTC-4, Robert P. J. Day wrote:
>
>
>   total beginner question here, but the docs seem vague or 
> inconsistent on what should be a simple question -- what does it mean 
> to import a name that is a single .a file versus importing a directory 
> name from under GOROOT (in my case, on fedora, /usr/lib/golang). 
>
>   first, running on fedora 28 beta, go version 1.10.1, and i see the 
> directory structure /usr/lib/golang and, under that, the further 
> directory layout pkg/linux_amd64, which i assume is where go will 
> begin its search for packages i specify to import -- that directory 
> contains, at its top level: 
>
> $ ls -F 
> archive/    debug/      html/      math/   plugin.a   sync.a 
> bufio.a     encoding/   html.a     math.a  reflect.a  syscall.a 
> bytes.a     encoding.a  image/     mime/   regexp/    testing/ 
> cmd/        errors.a    image.a    mime.a  regexp.a   testing.a 
> compress/   expvar.a    index/     net/    runtime/   text/ 
> container/  flag.a      internal/  net.a   runtime.a  time.a 
> context.a   fmt.a       io/        os/     sort.a     unicode/ 
> crypto/     go/         io.a       os.a    strconv.a  unicode.a 
> crypto.a    hash/       log/       path/   strings.a  vendor/ 
> database/   hash.a      log.a      path.a  sync/ 
> $ 
>
> so far, so good. 
>
>   now, when i, for example: 
>
>   import "fmt" 
>
> i assume that what is being imported is the package represented by 
> that single archive file, fmt.a, correct? that seems simple enough, as 
> there is no fmt/ directory, so my initial understanding is that an 
> import is meant to import the contents of a single ".a" go package 
> file. 
>
>   consider, next, an example where there is both an archive file and a 
> corresponding subdirectory, say "hash.a" and "hash/". if i simply did 
> this: 
>
>   import "hash" 
>
> i'm *assuming* that would import the package corresponding to only the 
> archive file "hash.a", correct? if i wanted to import a hash 
> "subpackage" (say, hash/crc32.a), then the import would look like: 
>
>   import "hash/crc32" 
>
> which would import *only* that hash-related package. (i realize this 
> all sounds trivial, it would just be nice if the docs came right out 
> and said it.) 
>
>   finally, what if there is no top-level .a file, and *only* a 
> subdirectory, such as for container/: 
>
> $ tree container 
> container 
> ├── heap.a 
> ├── list.a 
> └── ring.a 
> $ 
>
>   given that there is no top-level container.a file, would it even 
> make any sense to say: 
>
>   import "container" 
>
> i realize this is all trivially trivial, but it would be nice if, 
> early in the docs, this was spelled out clearly and directly (unless, 
> of course, it is and i just haven't got to that section yet). 
>
> rday

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to